PHP 入門

PHP 最初のプログラム

PHPスクリプトの主な役割は、リクエストを処理して動的なウェブコンテンツを生成することです。「Hello, World!」プログラムは、新しいプログラミング言語を学ぶ際の伝統的な第一歩であり、コードの実行方法や出力を生成するプロセスを直感的に理解するのに役立ちます。本章では、PHPコードをHTMLドキュメントに埋め込み、ブラウザにテキストを表示させる方法を解説します。これは、より複雑なサーバーサイド操作を実現するための基礎となります。

1. HTMLへのPHPの埋め込み

PHPコードは、特定のPHPタグを使用することでHTMLドキュメント内に直接埋め込むことができます。ウェブサーバーがPHPを含むファイルを処理する際、これらのタグを識別して内部のコードを実行し、タグとその中身をPHPスクリプトが生成した出力に置き換えます。タグの外側にある内容はすべて標準的なHTMLとして扱われ、そのままブラウザに送信されます。

最も一般的な埋め込み方法は、標準の開始タグ <?php と終了タグ ?> を使用することです。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>私の最初のPHPページ</title>
</head>
<body>
    <h1>私のウェブサイトへようこそ!</h1>
    <?php
        // ここにサーバー上で実行されるPHPコードを記述します。
        // これらのタグ内のすべての内容はPHPインタプリタによって処理されます。
    ?>
    <p>この段落は標準的なHTMLです。</p>
</body>
</html>

この例では、<h1><p> タグは純粋なHTMLです。<?php ... ?> ブロックは、PHPインタプリタが制御を担当する領域を示しています。現時点ではPHPブロック内に何も出力していませんが、ここがサーバーサイド処理を行う領域として定義されています。

2. echo文

echo 文は、1つ以上の文字列を出力するための言語構造(Language Construct)です。ブラウザにテキスト、変数、または式の計算結果を直接表示させるために頻繁に使用されます。echo は値を返さないという点が、通常の関数とは異なります。

クラシックな「Hello, World!」メッセージを出力するには、PHPタグの中に echo 文を配置します。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello PHP!</title>
</head>
<body>
    <h1>PHP出力のサンプル</h1>
    <?php
        // echo文は指定された文字列をブラウザに出力します。
        // 文字列はシングルクォートまたはダブルクォートで囲みます。
        echo "Hello, World!";
    ?>
    <p>上のメッセージはPHPによって生成されました。</p>
</body>
</html>

PHPが設定されたウェブサーバーを介してこのファイル(通常は hello.php などの .php 拡張子で保存)にアクセスすると、PHPインタプリタが処理を実行します。echo "Hello, World!"; が実行され、文字列 "Hello, World!" がHTMLレスポンスの一部としてブラウザに送信されます。その後、ブラウザは完全なHTMLをレンダリングし、テキストを表示します。

3. 複数の文字列とHTML要素の出力

echo は(カンマ区切りで)複数の文字列を出力することも可能ですが、文字列連結(Concatenation)を使用する方が一般的です。多くの場合、echo はHTMLタグを含む単一の文字列を出力するために使用されます。

<?php
    // シンプルな文字列を出力
    echo "これはシンプルなメッセージです。<br>"; // <br> はHTMLの改行タグ

    // PHPから直接HTMLを出力
    echo "<h2>これはPHPから出力された見出しです</h2>";

    // 複数の文字列を出力(比較的珍しい手法、通常は連結を使用)
    echo "第一部分 ", "第二部分", " 第三部分";
?>

これらの echo 文が実行されると、ブラウザは以下のようにレンダリングします。

これはシンプルなメッセージです。<br><h2>これはPHPから出力された見出しです</h2>第一部分 第二部分 第三部分

4. 初めての「Hello, World!」スクリプトを作成する

最初のPHPスクリプトを作成して実行するために、開発環境(XAMPPやMAMPなど)が動作していることを確認してください。

  1. 新規ファイルの作成: コードエディタ(VS Codeなど)を開き、新しいファイルを作成します。
  2. ファイルの保存: ファイル名を hello.php として保存します。保存先はウェブサーバーのドキュメントルート(WindowsのXAMPPなら C:\xampp\htdocs\、macOSのMAMPなら /Applications/MAMP/htdocs/)にしてください。
  3. コードの追加: 以下のコードを hello.php に貼り付けます。
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>私の最初のPHPスクリプト</title>
</head>
<body>
    <h1>PHPからの挨拶!</h1>
    <?php
        // これが私たちの最初のPHPスクリプトの核心です。
        // echo文が文字列 "Hello, World!" をブラウザに送信します。
        echo "Hello, World!";
    ?>
    <p>このメッセージは、PHPが正常に動作していることを示しています。</p>
</body>
</html>

4. ブラウザでアクセス: ウェブブラウザを開き、http://localhost/hello.php にアクセスします。

見出しとして「PHPからの挨拶!」が表示され、その後に「Hello, World!」、最後に「このメッセージは、PHPが正常に動作していることを示しています。」と表示されれば成功です。

5. 実践的なケーススタディ

ここでは、PHPがHTML構造の中でどのように動的なコンテンツを出力するかを示す、より詳細な例を紹介します。

5.1 ケース1:動的なページタイトルとコンテンツ

このスクリプトは、動的なページタイトルとウェルカムメッセージを出力します。これは、PHPがいかにしてHTMLページの異なる部分を制御できるかを示しています。

<?php
    // 複数の場所で使用する変数(Variable)を定義
    $pageTitle = "私の動的なページへようこそ";
    $welcomeMessage = "このページはPHPを使用して生成されています!";
?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo $pageTitle; ?></title>
    <style>
        body { font-family: Arial, sans-serif; background-color: #f4f4f4; text-align: center; padding-top: 50px; }
        h1 { color: #333; }
        p { color: #666; font-size: 1.1em; }
    </style>
</head>
<body>
    <h1><?php echo $pageTitle; ?></h1>
    <p><?php echo $welcomeMessage; ?></p>
    <?php
        // HTMLの各所に複数のPHPブロックを埋め込むことができます
        echo "<p>現在のサーバー時刻:" . date("H:i:s") . "</p>"; // date() は組み込み関数です
    ?>
</body>
</html>

実行時、ブラウザのタブには「私の動的なページへようこそ」と表示され、<h1> タグにも同じ内容が表示されます。最後の段落には、date() 関数によって動的に生成された現在のサーバー時刻が表示されます。これは、PHPがHTMLドキュメントに動的データを挿入する能力を証明しています。

5.2 ケース2:シンプルなリスト生成

この例では、PHPを使用してHTMLのリスト項目を生成する方法をデモンストレーションします。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHPで生成されたリスト</title>
</head>
<body>
    <h1>私の好きな色</h1>
    <ul>
        <?php
            // 各echo文がリスト項目(li)を作成します。
            // HTMLタグが文字列の一部であることに注目してください。
            echo "<li>ブルー</li>";
            echo "<li>グリーン</li>";
            echo "<li>レッド</li>";
        ?>
    </ul>
    <p>このリストは完全にPHPによって作成されました。</p>
</body>
</html>

出力結果は、「ブルー」「グリーン」「レッド」を含む箇条書きリスト(<ul>)になります。これにより、echo を使用して複雑なHTML構造を段階的に構築する方法が理解できるはずです。