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