Как уже упоминалось, это из-за XDebug.
Это доступно в документе, размещенном здесь, http://xdebug.org/docs/basic.
Вот его копия.
Параметры, которые вы собираетесь быть заинтересованы в xdebug.max_nesting_level
, как сейчас кажется, что вы его установить нравится 2 или 3.
Таким образом, вы можете редактировать php.ini и добавьте следующие
xdebug.max_nesting_level = 10
, который укажет, что он будет идти на 10 уровней до остановки.
В качестве альтернативы, если вы даже не хотите XDebug (как это будет улучшить производительность), вы можете просто отключить все вместе, добавив
xdebug.default_enable = 0
в файле php.ini.
xdebug.default_enable
Тип:логическое значение, По умолчанию:
Если этот параметр равен 1, то stacktraces будет отображаться по умолчанию на условиях событие ошибки. Вы можете отключить отображение стоп-кадров из вашего кода с помощью xdebug_disable(). Поскольку это одна из основных функций Xdebug, рекомендуется оставить этот набор настроек в 1.
xdebug.force_display_errors
Тип:INT значение, По умолчанию: , Введенный в Xdebug 2.3
Если этот параметр установлен в 1, тогда всегда будут отображаться ошибки, независимо от того, что такое настройка display_errors PHP.
xdebug.force_error_reporting Тип: ИНТ Значение по умолчанию: 0, Введенный в Xdebug 2,3
Этот параметр является битовая, как error_reporting. Эта битовая маска будет логически ORed с битовой маской, представленной error_reporting, на dermine, где должны отображаться ошибки. Этот параметр можно сделать только в php.ini и позволяет принудительно отображать определенные ошибки независимо от того, что делает приложение с помощью ini_set().
xdebug.halt_level
Тип:INT, Значение по умолчанию: , Введенный в Xdebug 2.3
Этот параметр позволяет настроить маску, которая определяет, будет ли и какая s и/или предупреждения преобразуются в ошибки. Вы можете настраивать уведомления и предупреждения, которые генерируются PHP, а также уведомления и предупреждения, которые вы генерируете сами (с помощью trigger_error()). Например, чтобы преобразовать предупреждение STRLEN() (без аргументов) к ошибке, вы могли бы сделать:
ini_set('xdebug.halt_level', E_WARNING);
strlen();
echo "Hi!\n";
Which will then result in the showing of the error message, and the abortion of the script. echo "Hi!\n"; will not be executed.
The setting is a bit mask, so to convert all notices and warnings into errors for all applications, you can set this in php.ini:
xdebug.halt_level=E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE
The bitmask only supports the four level that are mentioned above.
xdebug.max_nesting_level
Тип:целое, Значение по умолчанию:
Управление защитным механизмом анис для бесконечной рекурсивной защиты. Значение этого параметра - это максимальный уровень вложенных функций, которые разрешены до того, как скрипт будет прерван.
xdebug.scream
Тип:логическое значение, По умолчанию: , Введенный в Xdebug> = 2,1
Если этот параметр 1, то Xdebug отключит оператор @ (shut-up), чтобы не льды, предупреждения и ошибки больше не скрываются.
Как выглядит print_r ($ array)? – dbinns66
Это «особенность» Xdebug. Вы можете настроить количество элементов, отображаемых с настройками в PHP.INI. См. [Reference] (http://xdebug.org/docs/display) –
Это число элементов в массиве. Не имеет значения, является ли элемент NULL или имеет данные. – Misunderstood