在php中我编写了自己的调试函数,它有两个参数:text和一个消息级别。但是,我也可以成为触发错误的php函数。但是为了在开发中调试我有时会这样使用:
debug($xmlobject->asXML(),MY_CONSTANT);
现在我想知道在非调试执行中是否缺乏性能,因为参数是独立计算的,它们是否将在函数内部使用?以及如何做到这一点,只有在我需要时才能计算出来?
感谢您的帮助, 罗伯特
答案 0 :(得分:1)
如果您编写以下代码部分:
debug($xmlobject->asXML(),MY_CONSTANT);
然后,无论debug()
函数做什么,$xmlobject->asXML()
都将被调用并执行。
如果您不希望评估该表达式,则不得调用它;我看到两种可能的解决方案:
debug()
函数的无用生产调用,不在源文件中留下任何调试代码,在第二种情况下,可能会定义一个常量来配置您是否处于调试模式,然后,只在需要时调用debug()
:
if (DEBUG) {
debug($xmlobject->asXML(),MY_CONSTANT);
}
当然,使写入debbuging代码变得有点困难......并且有一些性能影响(但远比执行实际代码要小得多)。
答案 1 :(得分:0)
参数由值发送,ergo方法 - > asXML()始终执行。