課題文と判定文に関する質問 if ($userName=="system"){ $userName_msg="自动"; }else{ $userName_msg=""; } ログイン後にコピー そして $userName_msg=""; if($userName=="system"){ $userName_msg="自动"; } ログイン後にコピー 変数$userName_msgに値を代入したいのですが、上記の2つの書き方に違いはありますか? 共有先: -----解決策--------------------------------実装に違いはありません。 ただし、コードの品質の観点から見ると、もちろん 2 番目のオプションの方が優れています。 このような 2 つの状況だけで判断する場合は、もちろん 3 項算術の方が優れています。-----解決策--------- 実際には違いはありません。 しかし、変数を使用する前に初期化するという概念からすると、2 番目の方法の方が、使用する前に変数を初期化するという点でより一貫性があります。 最初の感覚は、同じ変数が異なるロジックに基づいて異なる値で初期化されており、初期化とロジックが密接に結合されすぎているということです。 ------解決策----------------------上記のみんなが言ってました 最初のタイプは、条件が true であるかどうかに関係なく、メモリが 1 回割り当てられます 2 番目の方法は、条件が満たされた場合にメモリを 2 回割り当て、最初の割り当ては破棄され、ガベージ コレクションに入ります -----解決策-------------- ------最初の 3 項演算により、変数が存在し、値があることを確認できます 次に、初期値を割り当てるコードと新しい値を割り当てるコードが離れすぎている場合、初期値が存在するという保証はありません。存在しない変数 にアクセスする可能性が非常に高い