少し御無沙汰しております^^ めげづにほぼ毎日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.2
- 回答日時:
・typoに悩んでいる
・文法エラーの原因をつきとめられない
・ソースのフローを追いかけられない
ということであれば、統合環境を導入して、きちんとデバッグすると
無駄に悩む時間が少なくなると思いますよ
No.3
- 回答日時:
No.1様へのお礼欄の内容について
> print "<img src=\"{$ch}Circle.jpg\"/>";
> print "<img src=\"{$ch}triangle.jpg\"/>";
この部分は質問欄でご提示のプログラムと違っていますよ。
> を再度入力したところ、画像は出てきませんでしたが
> エラー表示は消えて以下のように画像が緑の山の上に
■■■■■■
■■■■■■
■■■■■■
■■■■■■
■■■■■■
> 雲がある画像が25枚出てきました。
恐らく理解されていないのだと推測しますが、
準備する画像ファイルの名前は、「0.jpg」と「1.jpg」です。
No.4
- 回答日時:
No.3です。
> ファイル名を以上に変えましたが、結果は同じでした。
プログラムを元通り(参考書に記載されているとおり)にしましたか?
> ファイル名が「0.jpg」と「1.jpg」と決まりがあるのでしょうか!?
> 英数名でしたら、なんでもいいのじゃないのでしょうか?
ファイル名が「0.jpg」と「1.jpg」の画像ファイルを使用するように、プログラムで記述しているからです。
そして、使用されている参考書のずいぶん前のページで、どうしてそうなるのかが説明されています。
というか、
今までのページに記載されていたプログラムのひとつ一つの動きを理解した上で先に進まれていせんよね?
記載されているプログラムを入力して、記載されているとおり動いたからOKじゃ、勉強になりませんよ。
もう一度参考書を最初から勉強しなおしてみては如何でしょう?
ご自身が幾度も書かれているように、繰り返しが大事です。
プログラムの一行一行の意味を完全に理解してから、次に進むべきです。
ご回答くださいまして真ありがとうございました。
さて、ご指摘いただきました、通り、P120ページに戻り、Sample3の画像出てきていませんでしたのでNetBeans IDE 8.1で調べたところ、}のアンダーに”赤並み線”がありましたので、再度半角で入力をやり直して、JPG画像名を0~4として画像5枚を準備したところ、画像は画面いっぱいに出てきましたが、参考書の通りの動作はしています。
No.5
- 回答日時:
とりあえずhtmlが表示されたら、ブラウザの機能でソースを表示してみましょうよ
imgでしたらsrcに表示された画像が本当にあるのかどうか確認すれば済むはずです
さすがにhtmlの内容ぐらい読めるでしょ?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP php ログイン 1 2022/11/01 00:24
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
reuterの記事をbeautiful.soup....
-
リッチテキストエディターでの...
-
タグにはさまれている文字以外...
-
htmlでflashを開く、画面サイズ...
-
正規表現でHTMLタグの属性まで...
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
メッセージボックスで1025文字...
-
ソースコードの1行が長いとき...
-
文字の入力で横バー上段、中断...
-
ファイルから読み取った改行文...
-
半角英数字のみを受け付ける入...
-
ダブルコーテーション(
-
SJISで取得した半角カナをUTF-8...
-
C++でのCRLFについて
-
改行について
-
エクセルでの漢字、カタカナ、...
-
phpのメールフォームの完了画面...
-
PHPで変数から1行目だけを取得...
-
エディットボックスの改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
reuterの記事をbeautiful.soup....
-
JSFタグのfタグとは
-
正規表現で複数行に渡る範囲を...
-
変数にHTMLを代入する場合
-
phpの正規表現でstyle="●●"を削...
-
Nvuで作成したhtmlをコピペして...
-
正規表現で指定範囲すべて除去...
-
正規表現でタグの置換をしたい...
-
Strutsでリンクを動的に生成したい
-
自分でタグ打ちして作ったペー...
-
php正規表現 相対パス→絶対パス
-
ASP.NET(C#)とhtmlの#include
-
PHPの正規表現でHTMLタグの内容...
-
csobjというタグについて
-
VBSでのhtmlタグ要素名の置換
-
htmlタグ間の特定文字置換
-
URLの連続アクセス
-
HTMLファイルの書き換え
-
htmlspecialchars関数を使いな...
-
javascriptの正規表現で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が呼び出されて、
ループ範囲の画像が順番で現れる仕組みです。
と結論付けました。