为什么 "mb_convert_encoding() expects parameter 1 to be string, array given",如果在 php.net 上它接受数组?

Why "mb_convert_encoding() expects parameter 1 to be string, array given", if on php.net it accepts array?

$data = ['abcd', 'ddd'];
$data = mb_convert_encoding($data, 'utf-8', 'windows-1251');

我收到警告:mb_convert_encoding() 期望参数 1 为字符串,数组给定。

但根据 php.net mb_convert_encoding() 接受数组。 参见 https://www.php.net/manual/en/function.mb-convert-encoding.php

mb_convert_encoding ( mixed $val , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] ) : mixed

将 val 的字符编码从可选的 from_encoding 转换为 to_encoding。如果 val 是一个数组,它的所有字符串值将被递归转换。

是文档不正确还是我愚蠢?

如您提到的文档中的 changelog 所述:

7.2.0 - This function now also accepts an array as val. Formerly, only strings have been supported.

因此它仅适用于 7.2.0 及更高版本PHP