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

在编写PHP代码(用于调试)时,如何找出变量的值?,php,debugging,symfony-1.4,Php,Debugging,Symfony 1.4,我正在用symfony编写,并且在actions.class.php文件中 通常我只回显变量的值,但因为这是一个actions类模块,所以我不能这样做,因为我不能输出到页面 我曾考虑使用FireHP,但它涉及到在服务器端安装它,我想知道一个更简单或内置的解决方案。如果您可以访问服务器的日志文件,您可能希望了解PHP的功能。它将在PHP的错误日志中打印一个字符串,然后您可以检查日志文件 -编辑-:错误日志还允许您通过电子邮件发送消息。但是这很愚蠢。如果您可以访问服务器的日志文件,您可能需要查看PH

我正在用symfony编写,并且在actions.class.php文件中

通常我只回显变量的值,但因为这是一个actions类模块,所以我不能这样做,因为我不能输出到页面


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

如果您可以访问服务器的日志文件,您可能希望了解PHP的功能。它将在PHP的错误日志中打印一个字符串,然后您可以检查日志文件


-编辑-:错误日志还允许您通过电子邮件发送消息。但是这很愚蠢。

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


-编辑-:错误日志还允许您通过电子邮件发送消息。但这很愚蠢。

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

通过电子邮件发送代码。您可以在脚本末尾发送一个,也可以在整个脚本中发送一个。两者都有好处。如果你没有收到电子邮件,通过电子邮件可以很容易地让你知道哪里出了问题,并且在最后发送电子邮件,这似乎不是一个问题。

电子邮件日志确实有效,但有一些更好、更简单、更快的方法可以做到这一点

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

在动作中使用:

$this->getLogger()->debug('My $variable value is now: '.$variable);
您还可以使用其他级别的日志->警告、->err、->crit等。。当然,如果变量是数组或对象,则需要将其更改为字符串

事实上,您可以在动作中回音和var_转储内容。它们会显示在你的页面上,虽然会严重影响布局,因为你在实际模板之前显示内容


请记住,echo仅适用于字符串和数字。如果您尝试回显布尔值或数组,您将什么也看不到。如果你尝试回显一个对象,它的uu-toString方法将被使用或引发错误。

通过电子邮件发送日志确实有效,但有一些更好、更简单、更快的方法可以做到这一点

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

在动作中使用:

$this->getLogger()->debug('My $variable value is now: '.$variable);
您还可以使用其他级别的日志->警告、->err、->crit等。。当然,如果变量是数组或对象,则需要将其更改为字符串

事实上,您可以在动作中回音和var_转储内容。它们会显示在你的页面上,虽然会严重影响布局,因为你在实际模板之前显示内容


请记住,echo仅适用于字符串和数字。如果您尝试回显布尔值或数组,您将什么也看不到。如果您尝试回显一个对象,它的uu-toString方法将被使用,或者会出现错误。

是否可以回显变量,然后在它之后使用exit?这似乎只会导致页面为空。脏兮兮的,乱七八糟的,但是给自己发电子邮件也行。@schautdaular:Hah。。是的,那可能有用。@SchautDollar:事实上,给自己发电子邮件效果很好。一行代码,它会立即发送。是否可以回显变量,然后在变量后使用exit?这似乎只是导致页面为空。脏兮兮的,乱七八糟的,但给自己发电子邮件也行。@schautdaular:Hah。。是的,那可能有用。@SchautDollar:事实上,给自己发电子邮件效果很好。一行代码,它会立即发送。您应该提到,这取决于环境prod/dev/cache/etc的日志配置。。。。有时,在prod env上甚至不允许记录err或crit。您应该提到,这取决于环境prod/dev/cache/etc的日志记录配置。。。。有时,在prod env上甚至不允许记录err或crit。