エンタープライズ:特集 2003/12/07 18:00:00 更新

全3回「WebプログラミングPHP言語入門」
特集:第1回 今から始めるWebプログラミング言語は「PHP」だ (2/3)

サンプルコードから感じ取るPHPの馴染みやすさ

 PHPは、ウェブサーバ上で実行されるスクリプト言語である。スクリプト言語は、SSIのようにサーバ側で自動的にスクリプトが実行されるため、JavaやC言語のように事前にコンパイルしておく必要がない特徴を持つ。この実行環境が関連し、初心者であっても気軽に開発できる環境を手にできるわけだ。

 PHPがPerlと大きく違う点は、HTTPの基礎知識をあまり必要としない点にある。例えば、下記のサンプル1をdate.phpという名前でPHPが動作可能なサーバ上に保存し、ブラウザからアクセスしてみてほしい。

サンプル1■現在時刻の表示
<html>
<body>
<p>現在時刻は<?=Date("Y-m-d H:i:s")?>です</p>
</body>
</html>

 上記サンプルを実行すると、次のように表示されるだろう。時刻は、読者がブラウザアクセスした時点の値が埋め込まれている。

現在時刻は2003-11-16 19:39:35です

 サンプル1の3行目にある「<?=Date("Y-m-d H:i:s")?>」の個所に注目してほしい。この部分は、PHPのスクリプトである。「<?= 計算式 ?>」と記述することで、計算式の結果を動的に挿入することが可能となっている。また、「<?PHP スクリプト?>」と記述することで、表示を伴わない処理(演算など)を記述することも可能だ。

 このサンプル1だけを見ると、SSIと同じような使い方しかできないだろうと思われそうだ。しかし、PHPはコンテンツ作成に必要な機能をひと通り実装しているので安心してほしい。次に挙げるサンプル2では、昨日、今日、明日の日付けをプレーンテキスト形式でWebブラウザに返している。2行目の「header("Content-Type: text/plain");」でブラウザに返すコンテンツの種類を、プレーンテキストに設定している。

サンプル2■昨日、今日、明日の日付けをプレーンテキスト形式で出力する

<?php
header("Content-Type: text/plain");
$oneday    = 86400;            // 24*60*60(秒) = 1日
$today     = time();           // 現在の日時を取得
$tomorrow  = $today + $oneday; // 明日
$yesterday = $today - $oneday; // 昨日
echo "今日は" . Date("d", $today) . "日です。\n"; echo "昨日は" . Date("d", $yesterday) . "日です。\n"; echo "明日は" . Date("d", $tomorrow) . "日です。\n"; ?>

 サンプル2を応用すれば、PHPでGIFやJPEGなどの画像ファイルを動的に生成し、Webブラウザに返すことも可能なのだ。このほかに、PHPはクラスもサポートしている。クラスを使いプログラムをコンポーネント化することで、Javaの優位性でもあるオブジェクト指向プログラムをPHP環境で実現できるのだ。続けてサンプル3は、クラスを用いたPHPのスクリプトの例である。

サンプル3■簡単なクラス例

<?php
class Foo {
    var $_value = 0;
    function add($param) {
        $this->_value += $param;
    }
    function get() {
        return $this->_value;
    }
}
$foo =& new Foo();
$foo->add(1);
$foo->add(2);
$foo->add(3);
echo $foo->get();
?>

 ここではFooクラスのインスタンスを生成し、addメソッドでプロパティに値を加え、getメソッドで現在のプロパティの値を取得するものだ。このように、PHPでもJavaやC++のようにオブジェクト指向プログラミングを行うことが可能である。このオブジェクト指向プログラミングが可能であるということは、Javaと同じようにプログラム資産を部品として再利用し易いというメリットがある。

 PHPは、スクリプト言語としての手軽さと、オブジェクト指向プログラミングのメリットを兼ね備え、入門から応用までを幅広くカバーする理想的な言語だといえる。次章では、どのようにして生まれ、どのように進化してきたのか、PHPの歴史をたどってみたいと思う。

前のページ | 1 2 3 | 次のページ

[照井進吾,ITmedia]