PHPプロジェクトを作成する
DocumentRoot にプロジェクトフォルダを作成する
PHPプログラムを作成しますが、ファイルが分散してしないようにプロジェクトごとにフォルダ作成しましょう。Webサーバからアクセスできるように DocumentRootにプロジェクトを作成します。
ファイル構成
DocumentRootにプロジェクト名「lesson1」のフォルダを作成します。XAMP/MAMPのDocumentRootは「htdocs」ですが、これはWebサーバによって違います。
htdocs/
└── lesson1/
└── item.php
プロジェクトフォルダの作成
まず DocumentRoot にプロジェクトフォルダを作成します。今回は「lesson1」とします。
VSCode でプロジェクトフォルダを開きます。
プロジェクトフォルダが開きました。
PHPファイルの作成
PHPの拡張子は「.php」です。「lesson1」フォルダに「item.php」を作成しましょう。
VSCode で新規ファイルを作成
VSCode で新規ファイルを作成します。
ファイル名「item.php」を入力して作成します。
ファイル名について
ファイル名は「半角英数」と「特殊文字」 を利用し、URLで禁止されているような文字は利用できません。
PHPの基本
開始タグと終了タグ
phpタグを記述する
PHP のコードは <?php(開始タグ) と ?>(終了タグ) で囲い、その間に処理を記述します。終了タグは記述しなくても動作しますが、慣れないうちは囲んで記述しましょう。
1行で処理する
プログラムが1行の場合、「開始タグ」「終了タグ」を1行で記述できます。
<?php 処理; ?>
複数行で処理する
プログラムが複数行になる場合、「開始タグ」「終了タグ」を改行して記述します。
<?php
処理;
?>
閉じタグなしの場合
.php ファイルにPHPしか記述しない場合は、「終了タグ」はなくても構いません。
<?php
コメント
PHP のコメントは行の先頭に // (連続スラッシュ)を入力して1行のコメントでき、プログラムは実行されません。 また #(シャープ) を利用してもコメントできます。
1行のコメント
<?php
//1行のコメント
# コメント2
//TODO あとでやること
?>
複数行のコメント
複数行コメントは、/* と */ で囲んでコメントします。
<?php
//1行のコメント
# コメント2
/*
複数行のコメント
改行もできます
*/
/**
* 複数行のコメント
* この方が一般的です
*/
?>
PHPDoc
PHPのためのドキュメントをPHPDocといい、記述ルールが決まっています。例えば、複数行コメントに「@」をつけると、PHP 8ではアトリビュート、PHP 7.x 以前ではアノテーションという機能が使えます。
/**
* item
*
* @param int $price
* @return bool $result
*/
アトリビュート、アノテーションはテストや構文解析、コード生成などさまざまな機能が使えます。
PHPの行末
行末は ;(セミコロン)
PHPでは文の最後に ;(セミコロン) を入力して終了します。
<?php
1 + 2;
?>
Syntax Error(シンタックスエラー)
PHPには色々な文法があり間違えるとエラーになります。行の最後に ;(セミコロン) がないと、Syntax Error(シンタックスエラー) になります。
Syntax Error のままプログラムを実行を実行すると、ブラウザやコンソールにエラーメッセージが表示され強制終了します。
Parse error: syntax error, unexpected token
echo で結果出力
echoは処理した結果をコンソールやブラウザに出力できます。
echo 表示する値;
1 + 2 の結果をブラウザで表示してみましょう。
<?php
echo 1 + 2;
?>
結果
3
値を表示
文字列を表示
文字列を表示するには、"(ダブルクォーテーション) または、'(シングルクォーテーション) で囲みます。
echo 'コーヒー';
echo "コーヒー";
結果
コーヒーコーヒー
文字列のエラー
文字列を「 " 」または「 ' 」で囲まないとエラー になります。
echo コーヒー;
プログラムを実行するとUndefined(未定義)エラーになります。
Fatal error: Uncaught Error: Undefined constant "コーヒー"
数値を表示
数値を表示するには、そのまま数値を記述します。
echo 100;
echo -10.5;
文字列の結合
文字列を結合するには、値と値の間に .(ピリオド/ドット) でつなげます。
echo で「無糖」と「コーヒー」の文字をつなげて表示してみます。
echo '無糖'.'コーヒー';
結果
無糖コーヒー
WebサーバでPHP実行
作成した PHP ファイルの結果を確認してみましょう。 PHPの結果を確認する方法は大きく2種類あります。
- Webブラウザで確認する
- PHPコマンドを利用する
まずは、一番スタンダードな Webブラウザで確認してみます。
Webサーバで実行
ブラウザでURLでアクセスすると、Webサーバ(ApacheやNginx)に配置されたファイルを実行します。
localhost にアクセス
自分のPCのホスト名は、基本的にlocalhostのため、lesson1/item.php を実行する URL
http://localhost/lesson1/item.php
にアクセスして、ブラウザに結果が表示されれば成功です。
ターミナルでPHP実行
PHPはターミナルコマンドでも実行できます。ターミナルで「php」コマンドでファイル名を指定して実行します。
php ファイル名
VSCode のターミナル
VSCode でもターミナルで実行することができます。「ターミナル」メニューから「新しいターミナル」を選択します。
VSCode 上でターミナルが開きました。
Mac、Linux のターミナル
Mac、Linux の場合は「ターミナル」が利用できます。Mac の「ターミナル」は「アプリケーション > ユーティリティ > ターミナル」から起動します。
Windows の PowerShell
Windows は「PowerShell」で実行します。ただし、インストール環境によって php コマンドを実行するパスや権限を設定する必要があります。
XAMPP(Windows)、MAMP(Mac)
「XAMPP」「MAMP」の「php」コマンドの設定は「XAMPP・MAMPで開発環境構築」を参照してください。
PHPのバージョン確認
ターミナルでPHPのバージョンを確認します。
% php --version
PHP 7.4.6 (cli) (built: May 14 2020 10:39:21) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies
※「%」はターミナルの識別子なので入力は必要ありません
テキストと改行コード
改行コードとは
echo で表示するとターミナル上で改行されないため、色々出力すると結果がみづらくなります。 普段文章を書いていて改行しないとみづらくなるのと同じです。
コーヒー紅茶ほうじ茶
テキストを改行して出力するには OS に対応した改行コードを出力する必要があります。
プログラムの改行コード「LF」
改行コードは、Mac、Windows、LinuxなどのOSによって種類があります。Webプログラムでは、Linuxの改行コード「LF」を利用します。
改行コード | OS | プログラム |
---|---|---|
LF | macOS / Linux | \n |
CR | MacOS9以前 | \r |
CRLF | Windows | \r\n |
PHPで改行コードを出力する
PHPで「LF」を出力するには、「\n」を ダブルクォーテーションで囲んで出力します。
echo "\n";
文字を改行する
文字と改行コードを出力します。
echo "コーヒー";
echo "\n";
echo '紅茶';
ブラウザで改行コードを確認する
改行コードしてもブラウザでは改行して表示されません。ブラウザの改行は pやbrタグなどのHTML改行タグが必要です。よって、テキストの改行を確認するには Chrome のページのソースを表示を開きます。
結果
ブラウザのソースを表示すると、文章が改行されていることを確認できます。
コーヒー
紅茶
シングルクォーテーションはそのまま表示
改行コードをシングルクォーテーションで囲むと、「\n」の文字がそのまま出力されてしまいます。
echo '\n';
結果(ブラウザのソース)
コーヒー
紅茶\n
「PHP_EOL」を利用する
改行コードの出力は「\n」の他に、PHPの定数PHP_EOLで出力することもできます。
echo "コーヒー";
echo "\n";
echo '紅茶';
echo 'ほうじ茶';
echo PHP_EOL;
結果(ブラウザのソース)
コーヒー
紅茶
ほうじ茶
HTML改行
「\n」はテキストを改行しますが、ブラウザ上では改行されません。 ブラウザ上を改行するには、HTMLのbrタグなどを出力します。
echo "コーヒー";
echo "\n";
echo '紅茶';
echo 'ほうじ茶';
echo PHP_EOL;
echo '<br>';
echo 'オレンジジュース';
結果(ブラウザ表示)
ブラウザで確認すると「ほうじ茶」の前でHTML改行できました。
コーヒー 紅茶\nほうじ茶
オレンジジュース
結果(ブラウザのソース)
HTMLソースを確認すると、brタグが出力されています。
コーヒー
紅茶\n
ほうじ茶
<br>
オレンジジュース
HTMLで出力
PHPはHTMLと一緒に記述できるのが大きな特徴です。プログラム処理した結果をHTMLで出力するため、PHPは動的コンテンツとなります。
短縮型(ショートタグ)
文字の表示は echoを利用しましたが、PHPのショートカット「?=」を利用すると便利です。
<?= "コーヒー" ?>
PHPファイルに HTMLタグを記述
ファイル構成
htdocs/
└── lesson1/
├── item.php
└── item_view.php
item_view.php ファイルを新規作成して以下のコードを記述します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>商品</h1>
<!-- echo() で出力 -->
<h2><?php echo "商品名" ?></h2>
<p><?php echo "ミネラルウォーター" ?></p>
<!-- echo() の省略形で出力 -->
<h2><?= "価格" ?></h2>
<p><?= 120 ?></p>
</body>
</html>
VSCode で HTML 作成するヒント
VSCode で HTMLを作成するには、入力に便利な機能がたくさんあるので活用しましょう。
スニペットを利用する
VSCode を利用するとスニペット(Emmet) というHTML の入力保管機能が便利です。例えばHTMLファイルで ! を入力すると候補がでてきます。
そのままエンターキーを押すと、HTMLコードが自動入力されます。
ブラウザで動作確認する
ブラウザで動作確認すると HTML が表示され PHP が処理されたことがわかります。
フォーマッター(Formatter)を利用する
プログラムが複雑になるとコードがガタガタになって、人間が読みづらいファイルになってしまいます。高機能エディタにはフォーマッター(Formatter) というコードを整形してくれる機能が搭載しています。
VSCode では フォーマッターのデフォルトのショートカットキーがあるのでこれを活用しましょう。
Mac
ショートカットキー | OS |
---|---|
Shift + Option + F | Mac |
Shift + Alt + F | Windows |