変数未定義のエラーを確認します。以下のコードを実行します。
<?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
