少し御無沙汰しております^^ めげづにほぼ毎日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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XSSで、<a><pre>タグだけを有効...
-
htmlspecialcharsで特定のタグ...
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
文字の入力で横バー上段、中断...
-
ソースコードの1行が長いとき...
-
JavaMail,本文中の改行について
-
文字列のアスタリスク置換
-
エクセルのCOUNTIFが正しくカウ...
-
preg_matchでエラーが出ます。
-
メッセージボックスで1025文字...
-
【VBA】エクセルで最後の不要な...
-
秀丸の正規表現で複数行にわた...
-
COBOLの改行
-
最終行の改行について
-
半角記号、全角記号を含む正規...
-
電話番号のチェック ハイフン...
-
C++で空Enterの入力を判...
-
VBScriptである文字列に半角文...
-
awkで改行を除いて文字列を抜き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数にHTMLを代入する場合
-
PHPに書く記述を教えてください
-
PHPの正規表現でHTMLタグの内容...
-
javascriptの正規表現でhtmlか...
-
ASP.NET(C#)とhtmlの#include
-
タグの中だけ改行を除去したい
-
正規表現で複数行に渡る範囲を...
-
htmlでflashを開く、画面サイズ...
-
横1行に2種類の画像を交互に5...
-
Strutsでリンクを動的に生成したい
-
正規表現で一発置換できるでし...
-
reuterの記事をbeautiful.soup....
-
phpの正規表現でstyle="●●"を削...
-
xmlとhtmlの違いについて
-
HTMLを組み込む場合。
-
alt属性を残してタグを排除
-
正規表現でタグの置換をしたい...
-
JSFタグのfタグとは
-
URLの結合
-
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が呼び出されて、
ループ範囲の画像が順番で現れる仕組みです。
と結論付けました。