ホームページ  >  記事  >  バックエンド開発  >  PHPにおけるローカル変数とグローバル変数のインターリーブ (1) ネストされたforループ内の変数

PHPにおけるローカル変数とグローバル変数のインターリーブ (1) ネストされたforループ内の変数

WBOY
WBOYオリジナル
2016-08-08 09:24:511204ブラウズ

C++/Java/C# から来た多くの学生は次のような間違いを犯す可能性があると思います:

<?php
  for($i=0;$i<9;$i++)
{
    #some code
    #many many code!...
    for($i=0;$i<8;$i++)
     {
          #some my ugly code
      }
}
?>

たくさんのコードを書いた後、別のループが必要になることを誰もが考えます。別の i をスローする必要はありません。他の言語でもこれを実行しますが、これを PHP で実行すると、コードが無限ループになることがわかります。理由は何ですか?

for ステートメントは関数ではなく、ステートメントの形式であることがわかります。PHP では、両方の i がグローバル変数として扱われ、内部のループが実行されるたびに、もちろん永遠に i が 7 に再割り当てされます。サイクルから抜け出すことすらできない。

私の解決策は、各 for ループで自動インクリメントする変数の名前を分離することです。これにより、この問題を大幅に回避できます。そして foreach を使ってみてください。

以上、PHPにおけるローカル変数とグローバル変数のインターリーブ(1)入れ子になったforループの変数について紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

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