次のコード スニペットがあります。
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL | E_NOTICE);
print $bla;
print 7;
?>
bla
未定義の警告を出力しますが、その後も続きます。未定義の変数が検出されたときに、php でエラーをスローしてコードの実行を停止させたい。どうやってするか?
上記はほんの一例です。数千ブロックのクローデピース内で各未定義変数を処理したい。
次のコード スニペットがあります。
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL | E_NOTICE);
print $bla;
print 7;
?>
bla
未定義の警告を出力しますが、その後も続きます。未定義の変数が検出されたときに、php でエラーをスローしてコードの実行を停止させたい。どうやってするか?
上記はほんの一例です。数千ブロックのクローデピース内で各未定義変数を処理したい。
独自のエラー ハンドラを作成できます。そして、このタイプの通知に遭遇したときに実行を停止させます。を見てみましょう
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;
でエラーハンドラを実装しset_error_handler
、中に入れdie
ます。
if(!isset($bla)){
throw new Exception('bla variable is not defined');
}