Php:在运行时禁用调试功能

时间:2011-07-18 16:42:07

标签: php debugging

在php中我编写了自己的调试函数,它有两个参数:text和一个消息级别。但是,我也可以成为触发错误的php函数。但是为了在开发中调试我有时会这样使用:

debug($xmlobject->asXML(),MY_CONSTANT);

现在我想知道在非调试执行中是否缺乏性能,因为参数是独立计算的,它们是否将在函数内部使用?以及如何做到这一点,只有在我需要时才能计算出来?

感谢您的帮助, 罗伯特

2 个答案:

答案 0 :(得分:1)

如果您编写以下代码部分:

debug($xmlobject->asXML(),MY_CONSTANT);

然后,无论debug()函数做什么,$xmlobject->asXML()都将被调用并执行。


如果您不希望评估该表达式,则不得调用它;我看到两种可能的解决方案:

  • 删除对debug()函数的无用生产调用,不在源文件中留下任何调试代码,
  • 或确保它们仅在需要时执行。

在第二种情况下,可能会定义一个常量来配置您是否处于调试模式,然后,只在需要时调用debug()

if (DEBUG) {
    debug($xmlobject->asXML(),MY_CONSTANT);
}


当然,使写入debbuging代码变得有点困难......并且有一些性能影响(但远比执行实际代码要小得多)

答案 1 :(得分:0)

参数由值发送,ergo方法 - > asXML()始终执行。