由于某些原因,我的Mac显示错误消息"Undefined index: an-undefined-key",而在Windows上使用WAMP它会优雅地忽略异常。
用法示例:
if ($some_array['an-undefined-key']) {
// ...
}
是否有一个PHP配置可以改变这个行为?
我意识到我可以做以下事情,但如果可能的话,我宁愿使用上面的技术:
if (isset($some_array['an-undefined-key']) && $some_array['an-undefined-key']) {
// ...
}
是的,你需要调整error_reporting
和display_errors
的设置,听起来它们在你的两个不同的环境中是不同的。
链接
error_reporting
PHP ini_set -查看display_errors
Mac上使用安装的repo的PHP与WAMP服务器的PHP .ini之间的区别是PHP .ini,尝试编辑您的脚本并将以下行添加到顶部:
ini_set('display_errors', '1');
error_reporting(E_ALL);
这应该在您的脚本中。如果这不是问题,那么请反馈,我将相应地更改。
您不应该在脚本中添加不必要的行,因为您必须在运行时更改它们。
编辑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"