2017-11-02 18 views
-1

これはPHPの "機能"かバグかどうかを判断する上で問題があります。無限ループでphpインクリメント文字が無限ループになります

// PHP code 
for($i='A1';$i<='c1';$i++){ 
//something here.. 
} 

結果:このようなループを作る

。 なぜこれが起こっていますか? c1はA1 よりも「少なく」なければなりません。あるいは、A1がC1に達すると、少なくともそれらは等しいはずです。

ただし、何が起こるかは、$ iがZ1..Z9に行く途中でAA0 ...などに向かうということです。あなたが'c1'なく'C1'を持って

+0

だから多分、私の本当の問題は、 "状態" –

+0

$ i ++は実際に動作しますか?増分は整数でのみ起こったと思った – Brett

+0

$ i ++はうまくいきます。 それはA1を増やします... A9はB0 ... B9に変わり、Z0..Z9 ...がAA0..AA9..etcになります –

答えて

3

、それは今までに> =

されませんので、あなたはおそらくやりたいようですね:

// PHP code 
for($i='A1';$i<=strtoupper('c1');$i++){ 
//something here.. 
} 
+0

それは誤字ではありません。スクリプト(ユーザ入力)に入れることができる実際のもの –

+1

これを増やすと無限ループになるので、何か他のことをしなければなりません。 'A1'は常に大文字になるので、常に' c1'よりも小さくなります.cは小文字です。 '$ i'をインクリメントすることで、決して小文字にすることはありません。文字を追加するだけです。 – dave

+0

はい。そうだ。私はちょうどA1 <= c1の評価で、A1は最終的にc1(小文字のc)に達すると思っていましたが、これは決して起こらないので、PHP自体のエラーだと思いました。とにかくurレスポンスのためのthx –

0

あなたはC1の小さなCを持って、タイプミス?

これは動作します:PHPはA1がC1未満であることを理解し、したがって、ループを実行しない方法が、すでにこの時点でc1が到達不能であることを知っている:

for($i='A1';$i<='C1';$i++){ 
    //something here.. 
    Echo $i ."\n"; 
} 

https://3v4l.org/SHK3E

+0

それは誤字ではありません。スクリプト(ユーザー入力)に入ることができる実際のものは、 –

関連する問題