![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?e8efa67)
少し御無沙汰しております^^ めげづにほぼ毎日PHPを頑張っております。
さて以下のプログラムで分からない部分のご解説のお願いで投稿いたしました。
<!DOCTYPE html>
<html>
<head>
<title>P132 Sample5-8 if文などと組み合わせる </title>
</head>
<body>
<?php
$ch = 0;
for($i=0; $i<5; $i++){
for($j=0; $j<5; $j++){
if(ch == 0){
print "<img src=\"{$ch}.jpg\"/>";
$ch = 1;
}
else{
print "<img src=\"{ch}.jpg\"/>";
$ch = 0;
}
}
print "<br/>\n";
}
?>
</body>
</html>
以上のコードですが!今いち!の日光の手前です。
質問ですが
$ch = 1;は何の働きがあるのでしょうか
以上教えていただけないでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
>$ch = 1;は何の働きがあるのでしょうか
交互に表示する画像のうち、どっちを表示するのか?
という判別の為に使われるフラグです。
コードを順番に追いかけて脳内デバッグ(?)していけば判るでしょう。
が、掲示されたコードは期待した動作をしないと思われますが。
原因については何回か指摘されている箇所で、質問者さん自身が
「気をつける」と宣言された部分ですので理解されているハズです。
# 覚えていないのならば、ご自分の質問履歴を確認してくださいな。
同じことなんども付き合う気もないので、基本回答はスルーしていますけどね……。
まぁたまには…ってことで。
ご回答くださいまして誠にありがとうございました。
print "<img src=\"{$ch}Circle.jpg\"/>";
print "<img src=\"{$ch}triangle.jpg\"/>";
を再度入力したところ、画像は出てきませんでしたが
エラー表示は消えて以下のように画像が緑の山の上に
■■■■■■
■■■■■■
■■■■■■
■■■■■■
■■■■■■
雲がある画像が25枚出てきました。
なので、私が準備した画像とは違っております。
画像が交互に出すしくみに苦心しております。
No.5
- 回答日時:
とりあえずhtmlが表示されたら、ブラウザの機能でソースを表示してみましょうよ
imgでしたらsrcに表示された画像が本当にあるのかどうか確認すれば済むはずです
さすがにhtmlの内容ぐらい読めるでしょ?
No.4
- 回答日時:
No.3です。
> ファイル名を以上に変えましたが、結果は同じでした。
プログラムを元通り(参考書に記載されているとおり)にしましたか?
> ファイル名が「0.jpg」と「1.jpg」と決まりがあるのでしょうか!?
> 英数名でしたら、なんでもいいのじゃないのでしょうか?
ファイル名が「0.jpg」と「1.jpg」の画像ファイルを使用するように、プログラムで記述しているからです。
そして、使用されている参考書のずいぶん前のページで、どうしてそうなるのかが説明されています。
というか、
今までのページに記載されていたプログラムのひとつ一つの動きを理解した上で先に進まれていせんよね?
記載されているプログラムを入力して、記載されているとおり動いたからOKじゃ、勉強になりませんよ。
もう一度参考書を最初から勉強しなおしてみては如何でしょう?
ご自身が幾度も書かれているように、繰り返しが大事です。
プログラムの一行一行の意味を完全に理解してから、次に進むべきです。
ご回答くださいまして真ありがとうございました。
さて、ご指摘いただきました、通り、P120ページに戻り、Sample3の画像出てきていませんでしたのでNetBeans IDE 8.1で調べたところ、}のアンダーに”赤並み線”がありましたので、再度半角で入力をやり直して、JPG画像名を0~4として画像5枚を準備したところ、画像は画面いっぱいに出てきましたが、参考書の通りの動作はしています。
No.3
- 回答日時:
No.1様へのお礼欄の内容について
> print "<img src=\"{$ch}Circle.jpg\"/>";
> print "<img src=\"{$ch}triangle.jpg\"/>";
この部分は質問欄でご提示のプログラムと違っていますよ。
> を再度入力したところ、画像は出てきませんでしたが
> エラー表示は消えて以下のように画像が緑の山の上に
■■■■■■
■■■■■■
■■■■■■
■■■■■■
■■■■■■
> 雲がある画像が25枚出てきました。
恐らく理解されていないのだと推測しますが、
準備する画像ファイルの名前は、「0.jpg」と「1.jpg」です。
No.2
- 回答日時:
・typoに悩んでいる
・文法エラーの原因をつきとめられない
・ソースのフローを追いかけられない
ということであれば、統合環境を導入して、きちんとデバッグすると
無駄に悩む時間が少なくなると思いますよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlのソースからテーブルの値...
-
URLの結合
-
「ブログのコメント欄にリンク...
-
preg_match と正規表現 で URL抽出
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
記号は半角と全角どちらがよい...
-
テキストファイルから改行コー...
-
ダブルコーテーション(
-
、"(ダブルクォーテーション)...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
全角括弧と全角読点の間隔を狭...
-
C++で空Enterの入力を判...
-
ファイルから読み取った改行文...
-
ファイル内の1行(レコード)から...
-
バッチファイル 全角検索
-
数値をASCII文字にする方法につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現でタグの置換をしたい...
-
htmlのソースからテーブルの値...
-
正規表現で複数行に渡る範囲を...
-
phpでhtmlのタイトルを取得する...
-
PHPの正規表現でHTMLタグの内容...
-
reuterの記事をbeautiful.soup....
-
横1行に2種類の画像を交互に5...
-
変数にHTMLを代入する場合
-
タグにはさまれている文字以外...
-
phpの正規表現でstyle="●●"を削...
-
JSFタグのfタグとは
-
Nvuで作成したhtmlをコピペして...
-
URLの結合
-
「ブログのコメント欄にリンク...
-
preg_match と正規表現 で URL抽出
-
WordPressのhtmlエディタについて
-
PHPスクレイピングが上手くいき...
-
正規表現でHTMLタグの属性まで...
-
VBSでのhtmlタグ要素名の置換
-
文字列を順番に置換
おすすめ情報
ご回答くださいまして誠にありがとうございました。
A;ファイルの名前は、「0.jpg」と「1.jpg」です。
ファイル名を以上に変えましたが、結果は同じでした。
ファイル名が「0.jpg」と「1.jpg」と決まりがあるのでしょうか!?
英数名でしたら、なんでもいいのじゃないのでしょうか?
よろしくお願いいたします。
原因はよくわかりませんでしたが!今日
再度、画像を0.jpgと1.jpgと入力し直したところ
以下の画像のファイル名”無”の拡張子.JPGで交互に5行の5段の画像が出てきました。
初めて画像が出てきましたので、少し爽快な気分になりました^^
print "<img src=\"{$ch}.jpg\"/>";
$ch = 1;
}
else{
print "<img src=\"{ch}.jpg\"/>";
うまくいった原因として、昨日プログラムを再度入力しなおしたからだと思います。
さて、
画像も無事に参考書通り出てくるようになりました。後はプログラムの動作の流れですが!
まず
$ch = 0; の変数での関連事項ではjpg画像名は0の●で、$ch = 1;の1の画像jpgは▲です。
for($i=0; $i<5; $i++){ 行数のループを司るプログラム
for($i=0; $j<5; $j++){ 列数のループを司るプログラム
print "<img src=\"{$ch}.jpg\"/>";~の画像出力プログラムではif($ch == 0){~最初は0の●のjpg画像出てきて、次に$ch = 1;で▲のjpg画像出てくる。
それで、次に
else{
print "<img src=\"{$ch}.jpg\"/>";
$ch = 0; とすることで、再度●のjpgが呼び出されて、
ループ範囲の画像が順番で現れる仕組みです。
と結論付けました。