10日でおぼえるPHP5入門教室 第2日
2時限目 ヘッダ情報の話
list_header.php
ループを回して"HTTP_USER_AGENT","HTTP_ACCEPT_LANGUAGE","HTTP_REFERER"を表示する、というスクリプト。
PHPの部分とHTMLの部分がごちゃ混ぜになっていて、なんだかすごく違和感を感じる。
10行目でforeachループが始まって、11行目の?>でPHPスクリプト部分は一旦終わってるのに、その後のHTML文まで律儀に3回実行されるなんて。
本当かと思って
<html> <head> <title>ループのテスト</title> </head> <body> <?php for($i=0;$i<3;$i++){ ?> <p>This is a pen.</p> <?php } ?> </body> </html>
というスクリプトをブラウザで実行したら、This is a pen.が3回表示された。
なんだこの癒着。
と、書いたところで晩御飯を買いに出かけた。
マルエツに向かって歩いていたら、「あ、だから拡張子がhtmlじゃなくてphpなんだ」と思った。
list_header.phpの、<?phpタグの外側に書いていたHTMLは、HTMLじゃなくて「HTMLのようなもの」「<?php print(" 〜 "); ?>が省略されたPHPの文」なんだ。まずPHPのルールで全体が解釈されて、その結果がApacheに渡されるんだ、たぶん。
ためしに上のスクリプトの拡張子をphpからhtmlに変えてみたら、This is a pen.は1回だけ表示された。なるほど。腑に落ちた。*1でも、わかりにくいなー。
3時限目 クッキーの話
- setcookie関数
- $_COOKIE変数