如何在编写PHP代码时找出变量的值(用于调试)


How can I find out the value of a variable while writing PHP code (for debugging)?

我正在symfony中写作,我在actions.class.php文件之一中。

通常我只echo变量的值,但因为这是一个动作类模块,我不能这样做,因为我不能输出到页面。

我正在考虑使用FirePHP,但它涉及到安装它的服务器端,我想知道一个更容易或内置的解决方案

通过电子邮件发送日志当然可以,但是还有一些更好、更简单、更快捷的方法;)

在symfony中,您可以访问记录器,它将允许您记录任何内容。在prod环境中,默认情况下它是禁用的(当然你可以打开它),但在dev环境中,它不仅可以在日志文件中使用,还可以在Sf Web调试栏中打印。

在操作内部使用:

$this->getLogger()->debug('My $variable value is now: '.$variable);

您还可以使用其他级别的日志记录(->warning('')->err('')->crit('')等)。当然,如果它是数组或对象,则需要将变量更改为string。

事实上,你可以echovar_dump的东西,而在行动。它们会显示在你的页面上(尽管在实际模板之前显示的东西会严重扰乱布局)。

请记住,echo只适用于字符串和数字。如果您尝试回显一个布尔值或数组,您将看不到任何内容。如果你尝试回显一个对象,它的__toString()方法将被使用或引发错误。

在整个代码中发送电子邮件。你可以在剧本的结尾或整个过程中发送一个。两者都有好处。如果你没有收到电子邮件,在最后发送电子邮件可以很容易地让你知道哪里出了问题,并且节省了开销(尽管在这里似乎不会是一个问题)。

如果您可以访问服务器的日志文件,那么您可能需要查看PHP的error_log函数。它将打印一个字符串到PHP的错误日志中,然后你可以检查日志文件。

-edit-: error_log还允许您通过电子邮件发送消息。