PHP入門|初心者向けに基本文法とフォーム処理を初心者向けにコード付きで解説

PHP

PHPは、WebサイトやWebアプリケーションのサーバー側で使われるプログラミング言語です。

HTMLやCSSは、ブラウザに表示される画面を作るために使います。

JavaScriptは、ブラウザ上で動きをつけるために使います。

PHPは、サーバー側で処理を行い、必要なHTMLを作ってブラウザに返すために使われます。

WordPressもPHPで作られているため、Webプログラマーを目指すならPHPを学んでおくと役に立つ場面があります。

この記事では、PHP初心者向けに、PHPファイルの作り方、画面での確認方法、変数、条件分岐、配列、フォーム処理まで順番に解説します。

PHPとは

PHPは、サーバー側で動くプログラミング言語です。

たとえば、次のような処理に使われます。

  • お問い合わせフォームの送信処理
  • ログイン処理
  • 会員登録処理
  • データベースから記事を取得して表示する処理
  • ブログやCMSの管理画面
  • ECサイトの商品一覧や注文処理

HTMLだけでは、ユーザーが入力した内容を保存したり、ログイン状態を管理したりすることはできません。

PHPを使うと、ユーザーから送られた情報を受け取り、処理して、画面に結果を表示できます。

PHPとHTMLの違い

HTMLは、ブラウザに表示する内容を書くための言語です。

一方、PHPは、サーバー側で処理を行うためのプログラミング言語です。

種類役割
HTML見出し、文章、画像、リンクなどを表示する
CSS色、余白、文字サイズ、レイアウトなどを整える
JavaScriptブラウザ上で動きをつける
PHPサーバー側で処理してHTMLを作る

PHPは、HTMLの中に書くこともできます。

たとえば、PHPで文字を出力すると、ブラウザにはHTMLとして表示されます。

PHPの学習で使うファイル

今回は、PHPの練習用として次のファイルを作ります。

php-practice
├── index.php
└── style.css

それぞれの役割は次の通りです。

  • index.php:PHPとHTMLを書くファイル
  • style.css:見た目を整えるCSSファイル

HTMLファイルの拡張子は.htmlですが、PHPを書く場合は.phpにします。

PHPファイルを作る

まず、作業用フォルダを作ります。

デスクトップやドキュメントなど、自分が分かりやすい場所にフォルダを作ってください。

フォルダ名は、たとえば次のようにします。

php-practice

次に、Visual Studio Codeでこのフォルダを開きます。

  1. Visual Studio Codeを開く
  2. 「ファイル」をクリックする
  3. 「フォルダーを開く」をクリックする
  4. php-practiceフォルダを選ぶ

フォルダを開いたら、次の2つのファイルを作ります。

index.php
style.css

最初のPHPを書いてみる

index.phpに、次のコードを書きます。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHP入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHP入門</h1>

  <p>
    <?php
      echo "PHPで文字を表示しています。";
    ?>
  </p>

</body>
</html>

PHPは、次のタグの中に書きます。

<?php
  ここにPHPを書く
?>

echoは、文字を画面に表示するときに使います。

echo "PHPで文字を表示しています。";

PHPでは、命令の最後に;を書きます。

CSSを書く

次に、style.cssに次のコードを書きます。

body {
  font-family: sans-serif;
  padding: 40px;
  background-color: #f5f5f5;
}

h1 {
  font-size: 28px;
}

p {
  font-size: 18px;
}

これで、画面に少しだけ見た目がつきます。

PHPの画面を確認する

PHPファイルは、HTMLファイルのようにダブルクリックして確認するものではありません。

PHPはサーバー側で動くため、サーバー経由で表示を確認します。

PHPがインストールされている環境なら、PHPの簡易サーバーを使って確認できます。

Visual Studio Codeでphp-practiceフォルダを開いた状態で、ターミナルを開きます。

  1. Visual Studio Codeを開く
  2. php-practiceフォルダを開く
  3. 上部メニューの「ターミナル」をクリックする
  4. 「新しいターミナル」をクリックする

ターミナルが開いたら、次のコマンドを入力します。

php -S localhost:8000

実行すると、PHPの簡易サーバーが起動します。

ブラウザで次のURLを開いてください。

http://localhost:8000

画面に次のように表示されればOKです。

PHP入門
PHPで文字を表示しています。

表示されない場合は、次の点を確認してください。

  • index.phpを保存しているか
  • style.cssを保存しているか
  • php-practiceフォルダでコマンドを実行しているか
  • URLがhttp://localhost:8000になっているか
  • PHPがインストールされているか

ターミナルにphpが認識されないというエラーが出る場合は、PHPがインストールされていないか、環境変数の設定ができていない可能性があります。

PHPの変数を使う

次に、PHPの変数を使ってみます。

変数とは、文字や数字などの値を入れておくためのものです。

PHPでは、変数名の前に$をつけます。

index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHP入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPの変数</h1>

  <?php
    $name = "太郎";
  ?>

  <p><?php echo $name; ?>さん、こんにちは。</p>

</body>
</html>

このコードでは、$nameという変数に太郎という文字を入れています。

$name = "太郎";

そのあと、echoで変数の中身を表示しています。

<?php echo $name; ?>

画面で確認する

index.phpを保存します。

ブラウザを開いて、次のURLを表示します。

http://localhost:8000

すでに表示している場合は、ブラウザを更新します。

次のように表示されればOKです。

PHPの変数
太郎さん、こんにちは。

PHPで計算する

PHPでは、数字を使った計算もできます。

index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHP入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPで計算する</h1>

  <?php
    $price = 1000;
    $tax = 100;
    $total = $price + $tax;
  ?>

  <p>商品の金額は<?php echo $price; ?>円です。</p>
  <p>合計金額は<?php echo $total; ?>円です。</p>

</body>
</html>

このコードでは、$price$taxを足して、$totalに入れています。

$total = $price + $tax;

画面では、計算した結果を表示しています。

if文で条件分岐を書く

PHPでは、条件によって表示する内容を変えることができます。

条件分岐にはifを使います。

index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHP入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPのif文</h1>

  <?php
    $age = 20;
  ?>

  <?php if ($age >= 18): ?>
    <p>18歳以上です。</p>
  <?php else: ?>
    <p>18歳未満です。</p>
  <?php endif; ?>

</body>
</html>

このコードでは、$ageが18以上かどうかで表示内容を変えています。

<?php if ($age >= 18): ?>
  <p>18歳以上です。</p>
<?php else: ?>
  <p>18歳未満です。</p>
<?php endif; ?>

HTMLの中でPHPのifを書く場合は、このように:endif;を使う書き方もあります。

画面で確認する

index.phpを保存して、ブラウザを更新してください。

次のように表示されればOKです。

PHPのif文
18歳以上です。

$ageの値を15に変更すると、表示が変わります。

$age = 15;

保存してブラウザを更新すると、次のように表示されます。

18歳未満です。

配列を使う

配列は、複数の値をまとめて扱うためのものです。

たとえば、学習する言語を配列で管理してみます。

index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHP入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPの配列</h1>

  <?php
    $skills = ["HTML", "CSS", "JavaScript", "PHP"];
  ?>

  <ul>
    <?php foreach ($skills as $skill): ?>
      <li><?php echo $skill; ?></li>
    <?php endforeach; ?>
  </ul>

</body>
</html>

このコードでは、$skillsという配列に複数の文字を入れています。

$skills = ["HTML", "CSS", "JavaScript", "PHP"];

配列の中身を順番に表示するには、foreachを使います。

<?php foreach ($skills as $skill): ?>
  <li><?php echo $skill; ?></li>
<?php endforeach; ?>

画面で確認する

index.phpを保存して、ブラウザを更新します。

次のようにリストが表示されればOKです。

HTML
CSS
JavaScript
PHP

連想配列を使う

PHPでは、名前つきの配列も使えます。

これを連想配列といいます。

たとえば、ユーザー情報を次のように書けます。

<?php
  $user = [
    "name" => "太郎",
    "age" => 20,
    "job" => "学生"
  ];
?>

nameagejobのように名前をつけて値を管理できます。

index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHP入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPの連想配列</h1>

  <?php
    $user = [
      "name" => "太郎",
      "age" => 20,
      "job" => "学生"
    ];
  ?>

  <p>名前:<?php echo $user["name"]; ?></p>
  <p>年齢:<?php echo $user["age"]; ?>歳</p>
  <p>職業:<?php echo $user["job"]; ?></p>

</body>
</html>

連想配列の値を取り出すには、次のように書きます。

$user["name"]

ユーザー情報や商品情報などを扱うときに、連想配列はよく使われます。

フォームを作る

次に、PHPでフォームの入力内容を受け取ってみます。

フォーム処理は、PHPを学ぶうえで重要です。

たとえば、お問い合わせフォームやログインフォームでは、ユーザーが入力した内容をサーバーに送ります。

まず、index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHPフォーム入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPフォーム入門</h1>

  <form method="post" action="">
    <label>
      名前:
      <input type="text" name="username">
    </label>

    <button type="submit">送信する</button>
  </form>

</body>
</html>

このコードでは、名前を入力するフォームを作っています。

method="post"は、入力内容をPOSTという方法で送る指定です。

<form method="post" action="">

name="username"は、入力内容をPHPで受け取るときの名前です。

<input type="text" name="username">

画面で確認する

index.phpを保存して、ブラウザを更新します。

次のようなフォームが表示されればOKです。

PHPフォーム入門
名前:
送信する

フォームの入力内容をPHPで受け取る

次に、フォームに入力された名前をPHPで受け取ります。

index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHPフォーム入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPフォーム入門</h1>

  <form method="post" action="">
    <label>
      名前:
      <input type="text" name="username">
    </label>

    <button type="submit">送信する</button>
  </form>

  <?php if ($_SERVER["REQUEST_METHOD"] === "POST"): ?>
    <p>
      入力された名前:
      <?php echo $_POST["username"]; ?>
    </p>
  <?php endif; ?>

</body>
</html>

$_POSTを使うと、POSTで送られたフォームの内容を受け取れます。

$_POST["username"]

usernameは、フォームのname属性で指定した名前です。

<input type="text" name="username">

画面で確認する

index.phpを保存して、ブラウザを更新します。

入力欄に名前を入力して、「送信する」ボタンを押してください。

たとえば「太郎」と入力すると、次のように表示されます。

入力された名前:太郎

空欄チェックを追加する

今のコードでは、名前が空欄でも送信できてしまいます。

次は、空欄の場合にメッセージを表示するようにします。

index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHPフォーム入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPフォーム入門</h1>

  <form method="post" action="">
    <label>
      名前:
      <input type="text" name="username">
    </label>

    <button type="submit">送信する</button>
  </form>

  <?php if ($_SERVER["REQUEST_METHOD"] === "POST"): ?>

    <?php if ($_POST["username"] === ""): ?>
      <p class="error">名前を入力してください。</p>
    <?php else: ?>
      <p>
        <?php echo $_POST["username"]; ?>さん、こんにちは。
      </p>
    <?php endif; ?>

  <?php endif; ?>

</body>
</html>

空欄かどうかを確認しているのは、次の部分です。

<?php if ($_POST["username"] === ""): ?>
  <p class="error">名前を入力してください。</p>
<?php else: ?>
  <p>
    <?php echo $_POST["username"]; ?>さん、こんにちは。
  </p>
<?php endif; ?>

入力欄が空ならエラーメッセージを表示し、入力されていれば名前を使った文章を表示します。

エラーメッセージのCSSを書く

style.cssに、エラーメッセージ用のCSSを追加します。

body {
  font-family: sans-serif;
  padding: 40px;
  background-color: #f5f5f5;
}

h1 {
  font-size: 28px;
}

p {
  font-size: 18px;
}

input {
  padding: 8px;
  font-size: 16px;
}

button {
  padding: 8px 16px;
  font-size: 16px;
  cursor: pointer;
}

.error {
  color: red;
  font-weight: bold;
}

画面で確認する

index.phpstyle.cssを保存します。

ブラウザを更新して、入力欄を空のまま「送信する」を押してください。

次のように表示されればOKです。

名前を入力してください。

次に、名前を入力して送信します。

たとえば「太郎」と入力すると、次のように表示されます。

太郎さん、こんにちは。

htmlspecialcharsで安全に表示する

フォームの入力内容をそのまま画面に表示するのは避けた方がよいです。

ユーザーが入力した文字には、HTMLタグのような文字が含まれる可能性があるからです。

画面に表示するときは、htmlspecialcharsを使って処理します。

index.phpを次のように書き換えてください。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHPフォーム入門</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <h1>PHPフォーム入門</h1>

  <form method="post" action="">
    <label>
      名前:
      <input type="text" name="username">
    </label>

    <button type="submit">送信する</button>
  </form>

  <?php if ($_SERVER["REQUEST_METHOD"] === "POST"): ?>

    <?php
      $username = $_POST["username"];
      $safe_username = htmlspecialchars($username, ENT_QUOTES, "UTF-8");
    ?>

    <?php if ($username === ""): ?>
      <p class="error">名前を入力してください。</p>
    <?php else: ?>
      <p>
        <?php echo $safe_username; ?>さん、こんにちは。
      </p>
    <?php endif; ?>

  <?php endif; ?>

</body>
</html>

入力内容を安全に表示するために、次の処理を追加しています。

$safe_username = htmlspecialchars($username, ENT_QUOTES, "UTF-8");

フォームの入力内容を画面に表示するときは、このように処理してから表示します。

PHPでよく使う基本文法

ここまでで、PHPの基本をいくつか扱いました。

初心者が最初に覚えたい内容をまとめると、次の通りです。

書き方内容
<?php ?>PHPを書くためのタグ
echo文字や変数を表示する
$name変数
if条件によって処理を分ける
foreach配列の中身を順番に処理する
$_POSTフォームから送られた値を受け取る
htmlspecialchars画面に安全に表示するために使う

最初から全部を完璧に覚える必要はありません。

まずは、PHPファイルを作り、画面に文字を表示し、フォームの入力内容を受け取るところまで練習すると分かりやすいです。

PHPが動かないときに確認するところ

PHPが動かないときは、次の点を確認してください。

  • ファイル名がindex.phpになっているか
  • PHPの開始タグが<?phpになっているか
  • 命令の最後に;があるか
  • 文字列を"で囲んでいるか
  • 変数名の前に$があるか
  • ファイルを保存してからブラウザを更新したか
  • php -S localhost:8000を実行しているか
  • http://localhost:8000で確認しているか

PHPは、少し記号が抜けただけでもエラーになります。

エラーが出た場合は、表示されている行番号の近くを確認してください。

PHPを学ぶ順番

PHP初心者は、次の順番で学ぶと進めやすいです。

  1. PHPファイルの作り方を知る
  2. echoで文字を表示する
  3. 変数を使う
  4. if文で条件分岐を書く
  5. 配列とforeachを使う
  6. フォームを作る
  7. $_POSTで入力内容を受け取る
  8. htmlspecialcharsで安全に表示する
  9. データベースに接続する
  10. ログイン機能や投稿機能を作る

この記事では、データベース接続までは扱っていません。

PHPでフォーム処理に慣れてきたら、次はMySQLなどのデータベースと組み合わせて、投稿アプリやログイン機能を作るとよいです。

PHPで作れるもの

PHPを学ぶと、次のようなものを作れるようになります。

  • お問い合わせフォーム
  • 会員登録フォーム
  • ログイン機能
  • 掲示板
  • ブログ機能
  • 投稿管理画面
  • 商品一覧ページ
  • 予約フォーム
  • WordPressテーマのカスタマイズ

Webプログラマーを目指す場合、PHPはサーバーサイドの入口として学びやすい言語です。

特に、WordPressやフォーム処理に関わるなら、PHPの基本を知っておくと理解しやすくなります。

まとめ

PHPは、WebサイトやWebアプリケーションのサーバー側で使われるプログラミング言語です。

HTMLやCSSが画面を作るためのものだとすると、PHPはサーバー側で処理を行うためのものです。

PHP初心者は、まず次の内容から学ぶと分かりやすいです。

  • PHPファイルは.phpで作る
  • PHPは<?php ?>の中に書く
  • echoで文字を表示する
  • 変数は$nameのように書く
  • ifで条件分岐を書く
  • foreachで配列を表示する
  • $_POSTでフォームの入力内容を受け取る
  • htmlspecialcharsで安全に表示する

最初は、画面に文字を表示するだけで十分です。

そこから、変数、if文、配列、フォーム処理と進めていくと、PHPでWebページを動かす基本が分かるようになります。

PHPの基本に慣れてきたら、次はデータベースと組み合わせて、掲示板やログイン機能などを作ってみましょう。

タイトルとURLをコピーしました