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

php初心者です。
echo "<td><td colspan=2 align=center><input type=submit name=submit value=\"申込\">・・・・
と「PHP5であなたもウェブアプリが作れる」という書籍にのっていたのですが、素人ながら
echo "<td><td colsapan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"申込\">
なるような気がするのですが。
どなたか詳しく教えてください。
文字列について重要なことを理解してない気がします。
よろしくお願いします。

●質問者: yohsinn
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:echo PHP あなた にの アプリ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● lifehacks
●20ポイント

PHPからブラウザに渡されるHTMLが前者の場合には

....

後者の場合には

....

になります。いずれも大抵のブラウザは解釈し同じように表示できるはずです。XHTML形式で書く場合には属性値を引用符で囲む必要があります。

◎質問者からの返答

ふむ、ありがとうございました。


2 ● tezcello
●30ポイント

質問者さんの記述の方が正確でしょうね。

詳しくは

http://openlab.ring.gr.jp/k16/htmllint/explain.html#quote-attrib...


二重引用符(")で括った文字列は、変数などを展開(置換)してくれます。

$abc = '123';

$str = "mojiretu$abc";

である場合、$str の内容は、mojiretu123 になります。

単引用符(') では完全に文字として扱うので、

$abc = '123';

$str = 'mojiretu$abc';

である場合、$str の内容は、mojiretu$abc になります。

僕は、\ が邪魔な感じがするので、

echo '<input type=submit name=submit value="申込">';

の様に書くようにしています。

文字列として日本語を使う場合にエラーになったり(Shift-JIS は第2バイトに \ と同じコードを含む文字がある)

二重引用符だとPHPが文字列解釈時に常に展開できる文字列が無いかをチェックするので、負荷が高くなる

があるので、文字列は極力単引用符で括るようにしています。


実際には、Shift-JIS では殆ど記述しないのであまり関係ないし、展開できる文字列のチェックもそれ程時間がかかるものではないらしいですが。

本に書かれている事も絶対ではなく、前提などの説明を省略したりしているものも多数あるということですね。

そのサンプルは、一応動作はするでしょうからまだマシな方です。

誤字脱字で文法エラーや、そもそもアルゴリズムが間違っているもの、どこかから拾ってくる時に関係の無い部分まで選択してしまって無意味な部分を含んでいるもの など色々なものがあります。

(もちろんネット上の情報もそうです。むしろネット上の方が酷いかも)

単純に写すだけではなく、チャンと理解して書くのが必要なんですね。

◎質問者からの返答

うっうっ・・・こんなくだらない質問にこんなに丁寧に教えてくださいまして本当にありがとうございました。

この文章にはあなたの人柄にじみ出ています。


3 ● adu
●30ポイント

PHPの構文としてはどちらも正しいです。

書籍の例にて「"」が省略されているのは

HTMLのルールにて属性の値に記号(※1)を含まなければ「"」(※2)が必要ないからです。

省略はできますが、習慣として「"」は必ずつけるようにしたほうが良いそうです。

※1.ハイフン、ピリオド、アンダースコア、コロンを除く。

※2.または「'」

関連質問


●質問をもっと探す●



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