PHPはじめの一歩

PHPとは?

PHPは「PHP: Hypertext Preprocessor」の略()で、Web開発で広く使われるサーバーサイドのプログラミング言語です。HTMLコードに埋め込むことができ、動的なWebページを作成するのに適しています。

PHPの実行環境を準備

PHPはサーバー上で動作する言語なので、実際にサーバー上でテストを行うか、もしくはローカル環境に仮想サーバーを構築して動作を確認します。

ローカル環境を構築

自分のPCにPHPをインストールして開発できます。

  • XAMPP(Windows, Mac, Linux)
    • Apache, MySQL, PHPが一緒に入っているので便利
  • MAMP(Mac, Windows)
    • Mac向けの環境が整ったツール
  • Docker
    • 仮想コンテナを使ってPHP環境を構築する方法

初めてのPHPコード

PHPページは「.php」という拡張子のファイルに保存します。通常のHTMLコードを書き、その中にPHPタグでPHPコードを埋め込みます。

PHP開始タグ(<?php)とPHP終了タグ(?>)の間にPHPコードを書きます。ブラウザから「.php」ファイルにアクセスがあると、サーバー上のPHPエンジンは開始タグと終了タグの間にある命令を実行し、最終的にHTMLコードとして出力します。

基本の「Hello, World!」

<?php
  echo "Hello, World!";
  // => Hello, World!
?>

ehoは画面に文字を出力する命令です。

変数を使ってみる

<?php
  $name = "Taro";
  echo "こんにちは、" . $name . "さん!";
  // => こんにちは、Taroさん!
?>

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

条件分岐

<?php
$age = 20;

if ($age >= 18) {
  echo "あなたは大人です。";
} else {
  echo "あなたは未成年です。";
}
// => あなたは大人です。
?>

if 文を使うことで条件によって異なる処理ができます。

繰り返し処理

<?php
for ($i = 1; $i <= 5; $i++) {
  echo "番号: " . $i . "<br>";
}
/*
番号: 1
番号: 2
番号: 3
番号: 4
番号: 5
*/
?>

for 文を使うと繰り返し処理ができます。

フォーム入力データを外部書類にサブミット

データをサブミット(提出)するためのHTML

<!--入力されたテキストが、action属性で指定したPHPファイルにsubmit(提出)されます-->
<!--「usertext.php」の実行結果が新たなページに表示されます-->
<form method="POST" action="usertext.php">
  テキストを入力してください:<input type="text" name="usertext" />
  <br>
  <button type="submit">submit</button>
</form>

入力されたデータを表示するPHPファイル「usertext.php」

<?php
echo "あなたが入力したテキストは「";
/*
入力されたデータは$_POSTという配列変数に格納されています
input属性で指定したusertextというキーで取得します
*/
echo $_POST['usertext'];
echo "」です。";
// => あなたが入力したテキストは「◯◯◯」です。
?>

フォーム入力データを同書類にサブミット

$_SERVER[‘PHP_SELF’]という変数をaction属性に指定することで、フォームに入力された値を現在実行中のスクリプトファイルにサブミットする方法です。

$_SERVER[‘PHP_SELF’]は、PHPのスーパーグローバル変数(Superglobals)のひとつで、現在実行中のスクリプトのファイル名を取得するため変数です。これは、スクリプトがWebサーバー上で実行される際に、そのスクリプト自身のパス(ドメイン以下のURL)を返します。

<?php
if ($_POST['usertext']) {
  //フォーム入力があった場合テキストを出力
  echo 'あなたが入力したテキストは「' . $_POST['usertext'] . "」です。";
} else {
  //入力がない場合フォームを表示
  echo <<< HTML
  <form method="POST" action="{$_SERVER['PHP_SELF']}">
  テキストを入力してください:<input type="text" name="usertext" />
  <br>
  <button type="submit">submit</button>
  </form>
  HTML;
}
?>