ホームページ  >  記事  >  バックエンド開発  >  課題と判決文に関する質問

課題と判決文に関する質問

WBOY
WBOYオリジナル
2016-06-23 14:15:051103ブラウズ

 if ($userName=="system"){    $userName_msg="自动"; }else{   $userName_msg=""; }


 $userName_msg=""; if($userName=="system"){    $userName_msg="自动"; }

変数$userName_msgに値を代入したいのですが、上記2つの書き方に違いはありますか?


ディスカッションへの返信(解決策)

実装に違いはありません。
しかし、コードの品質の観点から見ると、もちろん 2 番目のオプションの方が優れています。
たった 2 つの状況でこのような判断をするには、もちろん 3 項演算を使用する方が良いです

実際には違いはありません。

しかし、変数を使用する前に初期化するという概念からすると、2 番目の方法の方が、使用する前に変数を初期化するという点でより一貫性があります。

最初の感覚は、同じ変数が異なるロジックに従って異なる値で初期化されているということであり、初期化とロジックが密接に結合されすぎています。

実装に違いはありません。
しかし、コードの品質の観点から見ると、もちろん 2 番目のオプションの方が優れています。
たった 2 つの状況でこのような判断をするには、もちろん 3 項算術を使用する方が良いです
++

上記の皆さんも言ってます

最初の条件では、条件が true かどうかに関係なく、メモリが割り当てられます1 回目
2 番目の方法、条件が確立された後、メモリが 2 回割り当てられ、最初の割り当ては破棄され、ガベージ コレクションに入力されます

1 番目の方法と 3 項演算により、変数が存在し、値があることを確認できます

2 番目ちなみに、初期値を割り当てるコードと新しい値を割り当てるコードが離れすぎている場合は、割り当てられた初期値が存在する保証はありません。存在しない変数にアクセスする可能性が非常に高い

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。