かずの撮った写真が地元の新聞に載った。中学の夏休みの課題に,絵を描くのは大変そうだから,写真にしようというかずを国宝高岡山瑞龍寺がライトアップされた夜に「撮りにいくぞ」と連れ出した。
年季の入った写真愛好家の間に中学1年の薄っぺらな体を差し込んで,かずが粘って撮った一枚が,高岡古城ライオンズクラブの40周年記念事業「写真で再発見 伝えよう高岡の魅力」というフォトコンテストのジュニアの部優秀賞3点の内の1点に選ばれたのである。一般の部は,最優秀賞や市長賞など色々あるのだが,ジュニアの部は優秀賞と入選しかない。その分応募点数も少ないことは,この際忘れよう。さずがにライオンズクラブは予算が潤沢なのか,大きな賞状を額付きで贈呈してくれた。
鉛板を葺かれた仏殿の屋根が,闇に青く浮かびあがっている。Canonのスキャナ5200Fでフィルムスキャンすると,銀塩写真よりも暗くなるようだ。
さて,前回から,改定新版「基礎PHP」というWINGSプロジェクト著の本を使って,こうしろうにPHPを教えている。この日は,文法の基礎を一気に進める。基本的な文法はC言語に似ているので,特徴的なところだけを大きい声で説明して,あとはサッーと流していく。
まずは可変変数。変数名を変数で持つことができる。
---------------------------------------------------------- <html> <head><title>test</title></head> <body> <?php $var=10; $output="var"; print ($$output); ?> </body> </html> ----------------------------------------------------------$$outputで$varの値10を取り出すことができる。
ブラウザに10と表示されることを確かめた。
「型はいろいろあるんだが,型宣言は必要ないんだ」と説明を続ける。PHPにはTrue/Falseを表す論理型や整数型,浮動小数点型があるが,スクリプト言語なので,変数は定義せずに使える。型は値を入れたときに決まる。だから,こんなことができる。
---------------------------------------------------------- <?php $a="10"; $a+=0.1; print ("$a <br> \n"); ?> ----------------------------------------------------------ダブルクォートでくくった10を代入した$aは文字列型だが,$a+=0.1と計算することができる。実行すると10.1とブラウザに表示される。 「<br>は改行を意味するHTMLのタグだというのは知っていると思うけど,\nはソースを改行させるために入れるんだ」と説明を続けていく。こうしろうの反応は「うん」,「ああ」ぐらいだ。まだ,とまどっているのだろう。
PHPの文字列は上記のようにダブルクォートで括る方法と,シングルクォートで括る方法がある。ダブルクォートで括った場合は,文字列中の変数は展開されるが,シングルクォートで括った場合は,そのまんま$aという文字が出力される。
大事なことは「スクリプトはサーバーで処理され,クライアントにはHTMLデータとして送られる。」ことだと概念を強調する。
次にPHPでは添え字で要素を示す通常の配列と,文字列をキーとして値を表す連想配列があることをこうしろうは勉強した。
---------------------------------------------------------- <html> <head><title>test</title></head> <body> <?php $col1[0]="red"; $col1[1]="blue"; $col1[]="white"; print ($col1[0] ."<br>"); print ($col1[1] ."<br>"); print ($col1[2] ."<br>"); $col2['red']="赤色"; $col2['blue']="青色"; $col2['white']="白色"; print ($col2['red'] ."<br>"); print ($col2['blue'] ."<br>"); print ($col2['white'] ."<br>"); print_r($col1); print("<br>"); print_r($col2); ?> </body> </html> ----------------------------------------------------------添え字を省略すると自動的にインクリメントされることやprint_r関数を使うと,配列全体のキーと値を表示できることを付け加え説明した。
PHPではデータベースから取得したレコードセットを連想配列で扱うことが多いので,配列は重要なテーマなのである。