-1

今日、欠落している関数が if の中にあるとエラーが表示されないことに気付きました。そして、デバッグが難しいため、そのエラーを確認するにはどうすればよいですか

<?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);
4

2 に答える 2

1

PHP における関数の存在は、インタープリターがステートメントを実行する直前にのみ決定されます。

したがって、 に評価されない条件内に不足している関数がある場合true、エラーはトリガーされません。

例えば:

if (false) {
    this_function_does_not_exist(); // this never gets run
}
// no errors
于 2012-12-29T14:53:41.060 に答える
1

xy 関数が (負の) 内にある場合、エラーは表示されませんif。トリガーされた場合のみです。道はない。

しかし、このようなファイルを実行 (チェック) することはできます。また、「疑わしい/疑わしい/非表示/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>';
    }
    }

アルファ版とベータ版のテストで役立つ可能性があり、関数ファイルの束を読み取るよりも確実に優れています。

于 2012-12-29T14:43:41.873 に答える