当display_errors关闭且PHP以安全模式运行时,我们如何调试PHP脚本?
答案 0 :(得分:8)
最好的方法是使用error_log() http://php.net/manual/en/function.error-log.php 您可以为该方法设置特定的处理程序。将其记录到数据库,文件或只显示错误。
如果要设置处理程序方法,可以使用:set_error_handler
答案 1 :(得分:2)
如果您在开发环境中,则应禁用safe_mode
并启用error_reporting
。在生产环境中,您可能不应该进行实时调试(因为它是实时的)。如果要使用error_log
跟踪生产环境中似乎仅的错误,或使用您正在使用的框架的日志记录机制,请在之后检查日志。这样您就不会破坏生产环境的正常运行。某些框架(如symfony
)提供了一个单独的界面来访问另一个环境中的系统(例如,访问index.php
已禁用错误报告,但frontend_dev.php
没有)
如果您没有单独的生产和开发环境,那么将它们分开是时候了。例如,您可以安装XAMPP
或类似的开发PC,在那里您可以进行开发,只有在您已经调试/测试/等代码时才部署到实时服务器。
答案 2 :(得分:1)
您可以使用:
error_reporting(E_ALL);
ini_set('display_errors','On');
ini_set('error_log','my_file.log');
PHP将日志文件写入文件。
如果无法启用display errors指令,可以使用var_dump,debug_backtrace和exception来调试php源代码。
答案 3 :(得分:0)
“每当你想要在打印声明或类型中输入内容时 调试器表达式,将其写为测试而不是“
- Martin Fowler
答案 4 :(得分:0)
当错误显示关闭时,我们只能使用echo $var; exit;
OR var_dump($list); exit;
答案 5 :(得分:0)
var_dump($variable);
exit;
OR
echo $variable;
exit;
OR
echo "<pre>";
print_r($variable);
exit;