1

次のコード スニペットがあります。

<?php
ini_set('display_errors', '1');
error_reporting(E_ALL | E_NOTICE);
print $bla;
print 7;
?>

bla未定義の警告を出力しますが、その後も続きます。未定義の変数が検出されたときに、php でエラーをスローしてコードの実行を停止させたい。どうやってするか?

上記はほんの一例です。数千ブロックのクローデピース内で各未定義変数を処理したい。

4

3 に答える 3

5

独自のエラー ハンドラを作成できます。そして、このタイプの通知に遭遇したときに実行を停止させます。を見てみましょう

http://php.net/manual/en/function.set-error-handler.php

小さくて簡単な例:

function new_error_handler($errno, $errstr, $errfile, $errline) {
    switch ($errno) {
      case E_NOTICE:
        if (strstr($errstr, 'Undefined variable')) {
          die('Undefined variable found');
        }
      break;
    }
}

set_error_handler('new_error_handler');

echo $foo;
于 2013-05-14T07:40:55.280 に答える
2

でエラーハンドラを実装しset_error_handler、中に入れdieます。

于 2013-05-14T07:40:28.797 に答える
-1
if(!isset($bla)){
   throw new Exception('bla variable is not defined');
}
于 2013-05-14T07:41:00.653 に答える