「PHP入門」を読む その1
PHP入門←教材はここ!
いつものように教材を読みながらポイント書き出したり思ったこと書き並べます。
PHPとは
- 「PHP is Hypertext Pre-processer」*1の略だと。なるほどHTML(Hypre Text Markup Language)と相性いいのは当たり前か。
- PHPのメリットとしてあげられているのは以下。
PHPの実体は、Webサーバに置かれるソフトウエアの Apacheモジュールとして動作するスクリプト言語を実行する環境を指します。HTML文書中に記述されたスクリプトを PHPが実行し、結果を HTMLデータとしてWebブラウザに出力する仕組みがあります。
PHP制作環境の設定
これは前回Mac上での動作を確認してるのでスルー。
PHPスクリプトの基本構造
- 早速以下のサンプルコードを確認してみました。
- コード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- Shift_Jisから変更 --> <title>PHP入門</title> </head> <body> <p>今日は、<?php echo date("Y/m/d"); ?> です。</p> </body> </html>
- 出力結果
今日は、2009/03/09 です。
定数と変数
- 定数の定義にはdefine()関数
- 書式
define("定数名","値");
- サンプル
<?php define("banban", "ばんばん"); print(banban); // 定数banban の中身を表示する ?>
- 変数定義には「$」を用いる。
- 書式
$変数名 = 変数に代入する値
- サンプル 論理値
$banban = true;
- サンプル 整数
$banban = 2000;
- サンプル 浮動小数点
$banban = 3.14159265;
- サンプル 文字列
$banban = "ばんばんは当サイトの作者のハンドルネームです";
- ずっと「banban」って何かなーと謎だったんで最後に分かりました。
- これからはバンバン先生と呼びます。
- 変数の命名規則として以下の記述あり。
PHPの変数名は、先頭に数字があってはいけません。基本的には、大文字と小文字を区別しませんが、対象によって異なる場合があります。
- なんと日本語も使えるらしい。使いたくないけど、怖いから。
配列
- 一番簡単な配列への代入法。
<?php $banban[] = "HTML"; $banban[] = "XHTML"; $banban[] = "XML"; ?>
- これだと順番にインデックス0から2までに格納できる。
- array()関数を使うと一度に記述できる。
<?php $banban = array("HTML", "XHTML", "XML", "XSLT", "RSS"); print($banban[1]); ?>
- 出力結果
- インデックスの区切り文字を指定して配列に格納していくのがexplode()関数。
<?php $banban = explode(",", "HTML,XHTML,XML,XSLT,RSS"); print($banban[3]); ?>
- 出力結果
- これは本当に実用性がありそうな関数。
- サンプル
<?php $fruit = array("Apple" => "りんご", "Orange" => "みかん", "Grape" => "ぶどう"); while(list ($key, $val) = each($fruit)) { print ("インデックスの $key は、$val です<br>\n"); } ?>
- 出力結果
インデックスの Apple は、りんご です
インデックスの Orange は、みかん です
インデックスの Grape は、ぶどう です
- ここで使われてるlist()関数について分かんないとよく飲み込めないんでそっちも参照してみた。
- 書式
list(変数) = array (インデックス);
- サンプル
list($orange,$apple,$grape) = array("りんご", "みかん", "ぶどう"); print ("$orange $apple $grape");
- 出力結果
りんご みかん ぶどう
- どうやらlist()関数は、配列の中身を変数に代入する関数。
- でもこれだけだと連想配列のサンプルがいまいちわからないんでecho()関数も参照。
- 書式
each (配列);
- サンプル
$fruit = array("りんご"=>123, "みかん"=>456, "ぶどう"=>789); print_r( each($fruit) );
- 出力結果
Array ( [1] => 123 [value] => 123 [0] => りんご [key] => りんご )
- echo()の説明が短すぎて分かりにくいけど、多分配列の一個目の要素について出力してるっぽい。
- 出力結果のうち「value」と「key」は意味分かるけど「1」と「0」はなんだろ?
- 単純に「[1]=[value」、「[0]=[key]」なのかな?
- あとprint_rって言うのも気になったんで参照。
引数で指定された変数の情報を参照します。文字列、整数、倍精度実数を指定した場合には、その値を出力します。配列やオブジェクトを指定した場合には、キーとインデックスを示す形式で出力します。
- 出力結果を見てみると配列のインデックスと要素を返してます。
演算子
- このあたりはだいたいほかの言語でもいっしょなので流し読み。
- ただひとつ「.=」という「連結して代入する」というのが気になったので以下のようなサンプルを作って走らせてみた。
- サンプル
<?php $x = 10; $y = 20; $x .= $y; print("最終的に x= $x <br>\n"); $a = "ABC"; $b = "abc"; $a .= $b; print("最終的に a= $a <br>\n"); $a.=$a; print("aにaを連結代入すると a= $a <br>\n"); ?>
- 出力結果
最終的に x= 1020
最終的に a= ABCabc
aにaを連結代入すると a= ABCabcABCabc
- 単純に文字列として連結していくということかな。