0

出于某种原因,我的 Mac 显示错误消息“未定义索引:未定义键”,而在带有 WAMP 的 Windows 上,它优雅地忽略了异常。

使用示例:

if ($some_array['an-undefined-key']) {
    // ...
}

是否有改变这种行为的 PHP 配置?

我意识到我可以执行以下操作,但如果可能的话,我宁愿使用上述技术:

if (isset($some_array['an-undefined-key']) && $some_array['an-undefined-key']) {
    // ...
}
4

3 回答 3

2

是的,您需要调整error_reportingdisplay_errors设置,这听起来在您的两个不同环境之间是不同的。

这里是链接

错误报告

PHP ini_set - 查看 display_errors 的第一个示例

于 2013-04-04T00:10:28.510 回答
0

您不应该在脚本中添加不必要的行,因为您必须在上线时更改它们。

编辑您的 php.ini(使用 wampmanager 菜单,以便获得正确的文件)

left click wampmanager -> PHP -> php.ini

查找这些参数并更改为这些值

error_reporting = E_ALL

这个在网页上显示错误

display_errors = On
error_log = "c:/wamp/logs/php_error.log"

这将使错误记录到 error_log 指定的文件中,即使它们没有显示在屏幕上

log_errors = On

WAMP 配置了 XDEBUG,因此您现在应该在网页中看到大的橙色错误 检查 php.ini 文件底部的这一行。版本号可能在您的系统上有所不同

; XDEBUG Extension
zend_extension = "c:/wamp/bin/php/php5.X.Y/zend_ext/php_xdebug-2.2.0-5.3-vc9.dll"
于 2013-04-27T01:08:43.510 回答
0

Mac 上使用已安装 repo 的 PHP 与 WAMP 服务器之间的区别在于 php.ini,请尝试编辑脚本并将以下行附加到顶部:

 ini_set('display_errors', '1');
 error_reporting(E_ALL);

这应该在您的脚本上。如果这不是问题,请回复评论,我会做出相应的更改。

于 2013-04-04T00:12:11.230 回答