読者です 読者をやめる 読者になる 読者になる

PHPの未定義変数エラーを出さないためには

以下は$flag が定義されてないのでif文の条件でNOTICE:undefined ... エラーがでる。

<?
if($flag == 1){
echo "OK";
}else{
echo "NO";
}
?>
  • 対策1 isset() , !empty() で定義済みの場合のみ評価する
<?
if(isset($flag)){

if($flag == 1){
echo "OK";
}else{
echo "NO";
}

}
?>
  • 対策2 未定義の場合、初期化する
<?
if(empty($flag)){
$flag = ""; //var_dump($flag) => string(0) "" 
}

if($flag == 1){
echo "OK";
}else{
echo "NO";
}
?>
  • 対策3 phpの設定を変更してundefinedエラーを出さないようにする。

そもそもNOTICEエラーは注意喚起程度で、無視しても通常の処理に支障はないという考えもあるので、これも手かも。

1 php.ini で変更する方法
error_reporting = E_ALL & ~E_NOTICE


2 .htaccess で変更する方法
php_value error_reporting 30711

3 phpスクリプトで変更する方法

<?php
error_reporting(E_ALL & ~E_NOTICE);
?>


他に良い方法あったらおしえてください。m(._.)m
わからないことだらけだがアホなりに日々進歩を実感する。('A`)