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

时间:2013-02-28 22:31:23

标签: php debugging symfony-1.4

我正在写symfony而且我在其中一个actions.class.php文件中。

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

我正在考虑使用FirePHP,但它涉及在服务器端安装它,我想知道更简单或内置的解决方案。

3 个答案:

答案 0 :(得分:2)

通过电子邮件发送日志确实有效,但有一些更好,更简单,更快捷的方法;)

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

在动作中使用:

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

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

事实上,在行动中你可以echovar_dump。它们将显示在您的页面中(尽管在实际模板之前显示内容时布局非常糟糕。)

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

答案 1 :(得分:1)

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

-edit-:error_log还允许您通过电子邮件发送消息。但那太傻了。

答案 2 :(得分:1)

在整个代码中给自己发送电子邮件您可以在脚本末尾或整个过程中发送一个。两者都有好处。如果您没有收到电子邮件,并且最后通过电子邮件节省开销,那么通过电子邮件发送将很容易让您知道哪里出了问题(虽然这似乎不是问题)。

相关问题