変数未定義のエラー(Undefined variable)について

変数未定義のエラーを確認します。以下のコードを実行します。

<?php
$name = $user;
var_dump($name);
?>

変数$userが未定義のため、変数代入時に以下のエラーが発生します。
なお、変数$nameの中身はNULLですが、変数$nameでエラーは発生しません。

//実行結果
Warning: Undefined variable $user in xxx.php on line xxx

NULL

変数$userをnullとして定義します。

<?php
$user = null;
$name = $user;
var_dump($name);
?>

これでエラーは解消できました。
変数$userが値をもたない状態を示すnullと定義することで、変数代入時に変数未定義のエラーは発生しません。

//実行結果
NULL

変数$userが値を持つことを考慮し、isset関数と三項演算子による分岐処理に変更します。

<?php
$name = isset($user) ? $user : null;
var_dump($name);
?>

エラー発生の前後で変数$nameの中身がNULLであることに変わりはありませんが、変数$userでエラーが発生しない処理を記述することが重要です。

//実行結果
NULL
タイトルとURLをコピーしました