[PHP-users 14084] Re: for文の無限ループが起きてしまう

桝形 誠二 php-users@php.gr.jp
2003年 3月 19日 (水) 03:01:42 JST


こんにちわ、桝形です。

> $no に 0 が入っていた場合、一回目のループで、$i = 0 となるわけですか
> ら、
> $i < 0 がFALSE になり、ループがここで終了すると思うのですが、
> 実際は、やはり無限ループになってしまいます。
> 
> ということで、
> if( $no > 0 ) {
>     for( $i = 0; $i < $no; $i++ ) {
>         echo "$i";
>     }
> }
> と変更し、問題なく動作しましたので、解決はできたのですが、どうもすっきり
> しません。確か昔、C言語を使っていたときは、大丈夫だったと思うのです。
> そういう仕様なのだからあきらめろって言われればそれまでなんですが・・・
> これってどうなんでしょうか?
> それとも私のプログラムの記述間違いか認識不足ですか?

下記の様な単純なプログラムでも同じ事になりますか?

<?
// 0やfalse等入れてみる
$no = -1;

for( $i = 0; $i < $no; $i++ )
{
  echo "$i";
}
?>

【確認】

OS:RedHat Linux6.2J
Web:Apache1.3.27
PHP(DSO):4.1.2( 国際化版 )
        :4.3.1
        :4.3.2-RC1

無限ループにはなりませんでした。

お使いのOSは何でしょう?
_______________________

  桝形 誠二( Masugata Seiji )
  E-Mail : s.masugata@digicom.dnp.co.jp

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄




PHP-users メーリングリストの案内