人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでの質問です。

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

だとうまくいくのですが

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

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

●質問者: quocard
●カテゴリ:インターネット ウェブ制作
✍キーワード:echo PHP 数字
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● tadashi0805
●27ポイント

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

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

試しに、

$data = "21";

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

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

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

◎質問者からの返答

ありがとうございます。

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

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

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

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


2 ● きゃづみぃ
●27ポイント

$data = 21;

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

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

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

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

◎質問者からの返答

ありがとうございます。

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

助かりました。


3 ● tezcello
●26ポイント

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

$data = 21;

でも

$data = "21";

でも

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

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

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

◎質問者からの返答

ありがとうございます。

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ