【isset関数/@マーク】PHPの未定義エラーを回避する方法【現役SE解説】
今回は、PHPの未定義エラーを回避する方法について、isset関数と@マークで回避する方法に分け、簡単に解説していきます。
isset関数で未定義エラーを回避する方法
PHPを使っているとよく”Undefined variable”という未定義エラーに遭遇すると思います。
そんなときには、以下のサンプルコードのように、isset関数でまず定義の確認をされると良いでしょう。
if (isset($hoge)) { echo "$hogeは定義されています。"; } else { echo "$hogeは定義されていません。"; }
上記のサンプルコードでは、isset関数の引数の$hogeという変数が定義されていれば、isset関数はtrueを返します。
@マークで未定義エラーを回避する方法
全ての変数に対し、いちいちisset関数で確認することを億劫と思う方は多いでしょう。
そこで、PHPでは@マークという便利なものがあり、これを変数の頭に付けることで未定義エラーを回避できます。
$hoge = @$hoge; // 未定義の場合は""になる。
上記のサンプルコードでは、@マークを付けて未定義エラーを回避していますが、未定義の場合には””が代入されることになります。
isset関数や@マークは配列にも有効
isset関数や@マークによる未定義エラー回避は配列にも有効です。
if (!isset($_POST['name'])) { echo "nameが定義されていません。"; }
よくある定義確認は上記のコードのようにGETやPOSTされたフォームデータの確認です。
$name = @$_POST['name'];
定義されていない場合は””として処理を進めたい場合には、上記のように@マークだけで済まされることもよくあります。