Ошибка типа "Функция такая-то expects parameter 1 to be string, array given в функции ..."

Главные вкладки

Аватар пользователя roman-yrv roman-yrv 7 декабря 2013 в 19:22

Добрый день.

Ни с того, ни с сего стали выскакивать warning'и такого типа.

Warning: strpos() expects parameter 1 to be string, array given в функции url() (строка 2194 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: substr() expects parameter 1 to be string, array given в функции url() (строка 2197 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: strpos() expects parameter 1 to be string, array given в функции drupal_strip_dangerous_protocols() (строка 1350 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: strpos() expects parameter 1 to be string, array given в функции url() (строка 2212 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: explode() expects parameter 2 to be string, array given в функции url() (строка 2213 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: htmlspecialchars() expects parameter 1 to be string, array given в функции check_plain() (строка 1559 в файле D:\OpenServer\domains\music\includes\bootstrap.inc).
Warning: strpos() expects parameter 1 to be string, array given в функции url() (строка 2194 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: substr() expects parameter 1 to be string, array given в функции url() (строка 2197 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: strpos() expects parameter 1 to be string, array given в функции drupal_strip_dangerous_protocols() (строка 1350 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: strpos() expects parameter 1 to be string, array given в функции url() (строка 2212 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: explode() expects parameter 2 to be string, array given в функции url() (строка 2213 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: htmlspecialchars() expects parameter 1 to be string, array given в функции check_plain() (строка 1559 в файле D:\OpenServer\domains\music\includes\bootstrap.inc).
Warning: strpos() expects parameter 1 to be string, array given в функции url() (строка 2194 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: substr() expects parameter 1 to be string, array given в функции url() (строка 2197 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: strpos() expects parameter 1 to be string, array given в функции drupal_strip_dangerous_protocols() (строка 1350 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: strpos() expects parameter 1 to be string, array given в функции url() (строка 2212 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: explode() expects parameter 2 to be string, array given в функции url() (строка 2213 в файле D:\OpenServer\domains\music\includes\common.inc).
Warning: htmlspecialchars() expects parameter 1 to be string, array given в функции check_plain() (строка 1559 в файле D:\OpenServer\domains\music\includes\bootstrap.inc).

Наведите на мысль, каким вообще образом в эти функции вдруг стал передаваться массив вместо строки ?

Заранее благодарен.

Комментарии

Аватар пользователя roman-yrv roman-yrv 7 декабря 2013 в 23:06

Проблему удалось решить.

Ошибка состояла в том, что я в функции l() передавал в качестве параметров не строки, а массивы (cck-поля). Вот такая вот полуопечатка.

А для того, чтобы можно было смотреть последовательность вызываемых функций, при вызове которых возникает эта ошибка, можно использовать php-функцию debug_backtrace. Лично мне она в данном случае очень сильно помогла.