当缺少函数时,如何显示错误

时间:2012-12-29 14:14:49

标签: php

今天我注意到if内部丢失的函数dosent显示错误。什么看错,因为很难调试

<?php if(3 >1): ?>

    <?php echo missingFunction(3); ?>

<?php else: ?>

    <?php echo missingFunction(3); ?>

<?php endif; ?>

如果我自己调用该功能

//这将显示缺少该功能

<?php echo missingFunction(4); ?>

在我所拥有的文件中

ini_set('display_errors', 1);
error_reporting(E_ALL);

2 个答案:

答案 0 :(得分:1)

如果xy函数位于(负)if内,则无法看到错误 - 只有在触发时才会出现错误。没有办法。

但是你可以这样做(检查)文件,你应该手动编写“有问题/可疑/隐藏/如果”功能(硬编码)..但更好,然后没有。

$maybe_fns = (function1,function2); //... you should type in `if` functions here, manually 
$check    = @explode(',', $maybe_fns);

    while (list($key,$xxx) = each($check))
    {
    if(!function_exists($xxx)
    {
    echo '<b>Warning:</b> No function <b>'.$xxx.'</b><br>';
    }
    }

可能会在alpha&amp; amp; beta测试,并且它确实比读取一堆函数文件更好。

答案 1 :(得分:1)

PHP中函数的存在只能在解释器执行语句的最后一刻确定。

因此,如果在永不评估为true的条件中缺少函数,则不会触发任何错误。

例如:

if (false) {
    this_function_does_not_exist(); // this never gets run
}
// no errors