chx*_*chx 180
一个鲜为人知的技巧是mod_php将stderr映射到Apache日志.并且,有一个流,因此file_put_contents('php://stderr', print_r($foo, TRUE))很好地将值转储$foo到Apache错误日志中.
小智 133
error_log(print_r($variable, TRUE));
Run Code Online (Sandbox Code Playgroud)
可能有用
use*_*507 20
如果你在Linux上:
file_put_contents('your_log_file', 'your_content');
Run Code Online (Sandbox Code Playgroud)
要么
error_log ('your_content', 3, 'your_log_file');
Run Code Online (Sandbox Code Playgroud)
然后在控制台中
tail -f your_log_file
Run Code Online (Sandbox Code Playgroud)
这将连续显示放入文件的最后一行.
你需要改变自己的思维方式.您正在编写PHP,而不是您以前编写的任何其他内容.PHP中的调试不是在控制台环境中完成的.
在PHP中,您有3类调试解决方案:
学习使用它们而不是试图使PHP的行为与您习惯的其他语言一样.
你在控制台上调试吗?调试PHP有各种选项.用于快速和脏调试的最常用函数是var_dump.
尽管如此,虽然var_dump很棒,而且很多人只是用它来做所有事情,但还有其他的工具和技术可以让它更有趣.
如果在网页中进行调试,请在<pre> </pre>dump语句周围包装 标记以便为数组和对象提供正确的格式.
即:
<div> some html code ....
<a href="<?php $tpl->link;?>">some link to test</a>
</div>
dump $tpl like this:
<pre><?php var_dump($tpl); ?></pre>
Run Code Online (Sandbox Code Playgroud)
并且,最后但并非最不重要的是确保调试错误处理是否设置为显示错误.如果您无法访问服务器配置,则可能需要在脚本顶部添加此项.
error_reporting(E_ALL);
ini_set('display_errors', '1');
Run Code Online (Sandbox Code Playgroud)
祝好运!