PHP入門
PHP(PHP:HypertextPreprocessor)サーバーサイドで動作するスクリプトの実行環境です。
特徴
習得が容易である
文法がシンプルで、初心者にも習得が簡単です。
ドキュメントが充実している
公式ドキュメントが充実しており、増大な命令1つ1つについて、構文と用例が日本語できちんと紹介されている。
利用環境が豊富
PHPは、WindowsやmacOS、Unix(Linux)をはじめとした代表的なプラットフォームで実行できます。
PHPの歴史
PHPのルーツは、Perlスクリプトで書かれたCGI(Common Gateway interface)のラッパー(ユーティリティ)です。その後、パフォーマンスを改善する目的で、すべてのコードをC言語で書き直したものが、1994年に「PHP(Personal Homepage Tools)1.0」としてリリースされます。その後、PHP1.0はデータベースへのアクセス機能や、フォームを解釈するFI(Form Interpreter)を付け加え、1995年、PHP/FI2.0と呼ばれるようになります。PHP/FI2.0はそれまでの建て増しに次ぐ建て増しで、安定性や保守性という意味で問題がありました。そこで、本格的にコードの書き換え作業が始まります。その結果として1998年に登場したPHP3.0は、現在のPHPの元祖なるバージョンとなりました。名称が「Personal Homepage Tools」から「PHP:Hypertext Preprocessor」に改められたものこの時期です。PHP/FI2.0と互換性はありませんが、コードを全面的に書き直したことから、パフォーマンスも安定性も大幅に向上しました。また、国際化対応バージョンが登場したことで、日本国内の利用者も増えました。
その後、2000年リリースのPHP4を経て、2004年7月にリリースされたのがPHP5です。バージョン5では、コアエンジンである「Zend Engine」が2.0にバージョンアップされたことで、基本機能にもさまざまな変更/強化が加えられました。その中でも注目すべき点がオブジェクト指向構文の強化でようやくPHPでもJavaライクな本格的なオブジェクト指向開発が可能になりました。その後、PHP5.1ではデータベース抽象化レイヤPDOが追加され、PHP5.3では名前空間/クロージャー、PHP5.4ではトレイト、PHP5.5ではジェネレータが、それぞれ実装されました。
公式サイト
- PHP(https://www.php.net/)
- PHPマニュアル(https://www.php.net/manual/ja/index.php)
PHP環境を設定するための手順
PHPでアプリケーションを開発・実行するには以下のソフトウェアが必要です。
1、Webサーバ-(Apache HTTP Server)
PHPはクライアントから要求を受けてからなんらかの処理を行うサーバーサイドのスクリプト実行環境です。PHPが動作するためには、クライアントからの要求をPHPに振り分けて、PHPでの実行結果をクライアントに応答するためのWebサーバ-が必要となります。Webサーバ-には、Windowsの標準的なサービスでもあるIIS(Internet Information Services)やnginx、ApacheHTTPServerなどあります。
2、PHP(PHP:Hypertext Preprocessor)
PHPの本体です。PHPの実行エンジンや各種ライブラリ、設定ファイルのテンプレートなど、PHPアプリの開発・実行に必要な一連のソフトウェアを含んだものになります。
3、データベースサーバー(MariaDB)
PHPアプリの開発において、データベースサーバーは必須ではありませんが、大量のデータを高速かつ確実に処理するにはデータベースサーバーが必要です。
4、コードエディター
PHPでコードを編集するために必要となります。Windows標準の「メモ帳」やmacOS標準の「テキストエディット」でもPHP開発は可能です。しかし、コーディング効率を考えれば、一般的にはコードエディタを導入します。
- Visual Studio Code(https://code.visualstudio.com)
- Atom(https://atom.io)
- Sublime Text(https://www.sublimetext.com/)
開発環境のセットアップ方法
XAMPP(ザンプ)による開発環境が一番手軽にはじめることができます。XAMPPにはApache、PHP、MariaDBが含まれています。
PHPでコーディングをする際に必要となる高機能コードエディターです。
PHPはインタプリター型の言語
インタプリター型の言語では実行都度にコンパイル及び実行します。一般的にコンパイル型よりもインタプリタ型の方が処理速度が劣りますが、PHPの最新のバージョンではパフォーマンスを向上させていますので、一般的な用途で速度がボトルネックになることはありません。また、PHP8では、JIT(Just-In-Time)機能を搭載しました。JIT機能とは、ソースコードを都度コンパイルするのではなく、内部的に一括コンパイルします。一括コンパイルされたコードはメモリ上に保存され、再利用されるので実行効率が大幅に改善しています。
文字列を簡単に出力する省略構文
PHPでは単純な値を出力する場合に、<?php~?>の代わりに、<?=~?>という構文を用意しています。
<?='こんにちは、みなさん'?><br />
<?='こんにちは、みなさん'?>
文を区切るのはセミコロン(;)
PHPでは複数の文を区切るのに、;(セミコロン)を使う必要があります。
print 'こんにちは、みなさん<br />';
print 'こんにちは、山田さん<br />';
セミコロンは文と文の区切りを表します。1つの文が長い場合は、以下のように空白や改行を行っても問題ありません。ただし、コードの可読性が落ちるので、次のコーディング規約を設けると良いでしょう。
print
'こんにちは、山田さん<br />'
;
- 文が80行を超えた場合に改行
- 改行位置はカンマ(,)、演算子などの直後
- 文の途中で改行したい場合には、次の行にインデックスを加える
- 短い文でも、複数の文を1行にまとめない(ブレークポイント対策)
大文字/小文字は区別しない
PHPでは命令の大文字/小文字を区別しません。
コメント
コメントはエンドユーザーには表示されませんので、開発者だけのメモとして使用することができます。
単一行のコメント
単一行のコメントは、「//」または「#」から行末までをコメントと見なします。ただし、「#」はほとんど使うことはありませんので、「//」で統一します。
//コメント
複数行のコメント
「/**/」で囲まれたブロック全体をコメントとみなします。複数行のコメントには入れ子にすることはできません。
/*
print 'コメントアウト1';
print 'コメントアウト2';
*/
/*単一行にも使用できる*/
PHPはHTML埋め込み型言語
PHPでは、HTMLコードの中に<?php~?>というブロックを埋め込み、その中に自由に命令文を記述できるからです。<?php~?>のことを、HTMLコードとPHPスクリプトとの境を表す区切り文字(デリミター)という意味で、スクリプティングデリミターまたはPHPタグと呼びます。
PHPのファイル名について
Apacheは、拡張子が「.php」であるファイルが要求されたタイミングでPHPの実行エンジンを起動します。ファイル名については、シングルバイト文字(英数字やハイフン、アンダースコア)にします。日本語のようなマルチバイト文字を指定してはいけません。
文字コードの設定
PHPを利用するにあたっては、php.iniで実際使っている文字コードを宣言する必要があります。基本的には国際化対応にもすぐれた性質を持っているUTF-8でシステム全体を統一するのが好ましいです。
UTF-8の設定
VSCodeでは、そもそも標準の文字コードがUTF-8になっています。確認方法は、ステータスバーの表示を確認します。
文字コードを変更することもできます。文字コード(❶)をクリックします。
エンコード付きで保存(❷)。
文字コードを選択します(➌)。このとき、「UTF-8 with BOM」(BOM付きUTF-8)を選択してはいけません。BOMは「Byte Order Mark」の略で、Unicode形式の先頭に付与される数バイトのデータのことです。BOMを利用することで、そのテキストがUnicodeで記述されていること、また、その種類(UTF-8、UTF-16)を識別します。しかし、このBOMはUnicodeを扱う上で必須ではないばかりでなく、PHPではそもそもBOM付きのファイルを正しく処理できない場合があります。
改行コードの設定
改行コード(改行文字)は、行を折り返すための特殊文字です。CRは「Carriage Ruturn(復帰)」、LFは「Line Fedd(改行)」を意味しています。
プラットフォーム | 改行コード |
---|---|
Windows | CR+LF |
macOS/Unix | LF |
改行コードが異なるとエディターで開いた時にレイアウトが崩れたりするので、PHPでは改行コードは「LF」に統一しておきます。
改行コードをファイル単位で変更するのは、大変なのでsettings.jsonでプロジェクト既定の改行コードをあらかじめ設定できます。設定ファイルは、アプリルート配下\.vscodeフォルダに保存されています。
{
"files.encoding": "utf8", 既定の文字コード
"files.eol": "\n", 既定の改行コード(\nはLFの意味)
}