我是var转储数组并看到这个:
array (size=4)
0 =>
array (size=2)
...
1 =>
array (size=2)
...
2 =>
array (size=2)
...
3 =>
array (size=2)
...
数组项目是否存在,是否未列出,或者是否存在问题?
答案 0 :(得分:0)
用var_dump()
中的省略号替换元素是Xdebug的“特征”。您可以使用PHP.INI中的设置调整显示的元素数。
具体而言xdebug.var_display_max_depth
会影响显示的数组元素和对象属性的嵌套级别。
还有许多其他设置可能会产生一些影响。请参阅reference
答案 1 :(得分:0)
正如其他人所说,这是因为XDebug。
此处的文档中提供了http://xdebug.org/docs/basic。
以下是它的副本。
您感兴趣的设置是xdebug.max_nesting_level
,因为您现在似乎已将其设置为2或3。
所以你可以编辑你的php.ini并添加以下内容
xdebug.max_nesting_level = 10
表示它会在停止之前达到10级深度。
或者如果您甚至不想要XDebug(因为它会提高性能),您是否可以通过添加
将它们全部禁用 在php.ini文件中 xdebug.default_enable = 0
。
xdebug.default_enable
输入: 布尔,默认值: 1
如果此设置为1,则默认情况下将在错误事件中显示stacktraces。您可以使用xdebug_disable()禁用代码中的堆栈跟踪。由于这是Xdebug的基本功能之一,建议将此设置设置为1。
xdebug.force_display_errors
键入: int ,默认值: 0 ,介绍 < em> Xdebug 2.3
如果此设置设置为1,则无论PHP的display_errors设置如何,都将始终显示错误。
xdebug.force_error_reporting 在 Xdebug 2.3 中键入:int,默认值:0,引入
此设置是一个位掩码,如error_reporting。该位掩码将与error_reporting to dermine表示的位掩码逻辑OR运算,应显示错误。此设置只能在php.ini中进行,并允许您强制显示某些错误,无论应用程序使用ini_set()做什么。
xdebug.halt_level
键入: int ,默认值: 0 ,介绍 < em> Xdebug 2.3
此设置允许您配置一个掩码,用于确定是否以及哪些通知和/或警告转换为错误。您可以配置由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
输入: 整数,默认值: 100
控制无限递归保护的保护机制。此设置的值是在中止脚本之前允许的最大嵌套函数级别。
xdebug.scream
键入: 布尔,默认值: 0 ,介绍 < em> Xdebug&gt; = 2.1
如果此设置为1,则Xdebug将禁用@(关闭)运算符,以便不再隐藏通知,警告和错误。