PHPの勉強を始めた初心者です。
タイトルの通り、次の2つのプログラムの違いを教えていただきたいです。
① $countに$iを代入した時
PHP
1<?php 2for ($i = 1; $i <= 50; $i++) { 3 $count = $i; 4 if ($i % 3 === 0) { 5 $count .= "Hello!"; 6 } 7 echo $count . "<br>"; 8} 9?>
実行後
1
2
3Hello!
4
5
6Hello!
7
8
9Hello!
10
11
12Hello!
13
14
15Hello!
・
・
・
② $countに代入しなかった時
PHP
1<?php 2for ($i = 1; $i <= 50; $i++) { 3 if ($i % 3 === 0) { 4 $i .= "Hello!"; 5 } 6 echo $i . "<br>"; 7} 8?>
1
2
3Hello!Notice: A non well formed numeric value encountered in /home/roop.php on line 10
3Hello!Hello!Notice: A non well formed numeric value encountered in /home/roop.php on line 10
3Hello!Hello!Hello!Notice: A non well formed numeric value encountered in /home/roop.php on line 10
3Hello!Hello!Hello!Hello!Notice: A non well formed numeric value encountered in /home/roop.php on line 10
3Hello!Hello!Hello!Hello!Hello!Notice: A non well formed numeric value encountered in /home/roop.php on line 10
3Hello!Hello!Hello!Hello!Hello!Hello!
エラー内容を調べたところ、
「数値形式ではない文字列を使って、数値を期待する演算 (+ – * / ** % << >> | & ^ や、これらを用いた代入演算) を行おうとしたときに、 E_WARNING あるいは E_NOTICE レベルのエラーが発生するようになりました。 E_NOTICE が発生するのは、文字列が数値で始まっていながら非数値で終わる場合で、 E_WARNING が発生するのは文字列中に数値が含まれない場合です。」
との事ですが、
なぜ「Hello!」だけがループしているのかが理解できません。
初歩的な質問ですが、分かり易いご回答をいただけると有り難いです。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー