PHPでの質問です。


for($A = 0;$A < 21 ; $A++)

だとうまくいくのですが

for($A = 0;$A < $data ; $A++)

だとうまくいきません。
試しに
echo "$data";
とするとちゃんと数字の21が入っていることが確認できます。
forの条件の指定の仕方に何か問題がありますでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2006/12/18 13:03:55
  • 終了:2006/12/20 10:58:51

回答(3件)

id:tadashi0805 No.1

tadashi0805回答回数287ベストアンサー獲得回数292006/12/18 14:03:49

ポイント27pt

うまくいかないのは、具体的にどういう挙動になるのでしょうか?

forループの中で$dataの値を変更しているということはありませんでしょうか。

試しに、

$data = "21";

for($A = 0;$A < $data ; $A++)

printf("i=%d\n", $A);

というスクリプトを動かしても、特に問題なく0~20までの処理が行われました。

id:quocard

ありがとうございます。

数字としては取得できていたのですが

ファイルのオープン・クローズの関係で

どうやら正常に取得できていなかったようです。

まだまだ勉強不足のようです。

2006/12/18 15:31:19
id:taknt No.2

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/12/18 14:17:55

ポイント27pt

$data = 21;

for($A = 0;$A < $data ; $A++)

というように明確に設定してもダメでしょうか?

様子からしてみると 21 ではなく "21"というように

文字列として 扱われている雰囲気があります。

id:quocard

ありがとうございます。

まったくもってご指摘の通りでした。

助かりました。

2006/12/18 15:31:36
id:tezcello No.3

tezcello回答回数460ベストアンサー獲得回数692006/12/19 09:39:55

ポイント26pt

php では文字列と数値とは厳密に区別されていないので、定義時は

$data = 21;

でも

$data = "21";

でも

結果は変わらないのでは?

上手くいかないのは最初の回答者さんの指摘のようにループ中で $data を変更しているか、

$data を使う時に(最初のコメントよりファイル名の一部として利用?)勘違いや間違いがあるのでは無いかと予想します。

id:quocard

ありがとうございます。

後で詳しくみたところ今回指摘されている部分と

上で指摘されている部分の両方が原因であることがわかりました。

2006/12/20 10:58:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません