PHP
メインページ > 工学 > 情報技術 > プログラミング > PHP
PHPは、汎用スクリプト言語ですが、CGI/FastCGIあるいはウェブサーバー組込みモジュールを介してウェブサービスで利用されることか多く、本書でもウェブでの利用を念頭に解説します。
PHPのコードは通常、モジュール、デーモン、あるいはCommon Gateway Interface (CGI) 実行ファイルとして実装されたPHPインタプリターによってウェブサーバー上で処理されます。 ウェブサーバー上では、PHPコードが解釈され実行された結果、生成されたHTMLやバイナリ画像データなど、あらゆる種類のデータがHTTPレスポンスの全体または一部を形成することになります。 様々なウェブテンプレートシステム、ウェブコンテンツ管理システム、およびウェブフレームワークが存在し、これらのシステムを使ってレスポンスの生成を統制し、円滑化することができます。 さらに、PHPはウェブ以外のプログラミングにも応用することができ、スタンドアローンのグラフィカルなアプリケーションやロボットやドローン制御などの組込みシステムでも使用可能です。
目次編集
PHPの新機能編集
PHPは、バージョンごとに多くの新機能が追加されています。以下に、PHP 7.0以降の主要な新機能をいくつか紹介します。
- Null合体演算子:
??
演算子は、左側の値がnull
でない場合は左側の値を返し、そうでない場合は右側の値を返します。 - スカラー型宣言: 関数の引数と戻り値に、スカラー型宣言(int、float、string、bool)を使用できるようになりました。
- 厳密なモード: 厳密なモードを有効にすることで、PHPは暗黙的な型変換を行わず、厳密な型チェックを行います。
- 匿名クラス: PHP 7から、匿名クラスを作成できるようになりました。これにより、一時的なオブジェクトを作成することができます。
- Closure::call()メソッド: Closure::call()メソッドは、別のオブジェクトのコンテキストでクロージャを実行することができます。
- Group use宣言:
use
宣言をグループ化して、複数の名前空間を一度にインポートできるようになりました。 - Unicode codepointエスケープ構文:
"\u{XXXX}"
の形式で、Unicode codepointをエスケープすることができます。 - 多倍長整数サポート: GMPおよびBCMath関数のパフォーマンスが向上し、64ビットのプラットフォームで多倍長整数を使用できるようになりました。
- Return type宣言: 関数の戻り値に、クラス、インターフェース、およびスカラー型を指定できるようになりました。
- Generator return expressions: Generatorのreturn文で、値を返すことができるようになりました。
これらの機能は、PHPの新しいバージョンで利用可能です。ただし、いくつかの機能は、最新のバージョンでのみ利用可能な場合があります。
PHPとジェネリックプログラミング編集
PHPは、ジェネリックプログラミングをサポートしていません。ジェネリックプログラミングとは、データ型を抽象的な形式で表現し、異なる型のデータを扱うための一般的なアルゴリズムやデータ構造を実装する手法です。一方、PHPは動的型付け言語であり、変数の型が実行時に決定されるため、ジェネリックプログラミングに必要な型情報を静的に解析することができません。
ただし、PHPには多くのライブラリやフレームワークがあり、これらのいくつかは、ジェネリックプログラミングの特定の側面をサポートすることがあります。例えば、PHPのフレームワークであるLaravelには、Eloquent ORMと呼ばれるORM(オブジェクト関係マッピング)があり、これは一部のジェネリックプログラミングの概念を実装しています。
一般的に、ジェネリックプログラミングを必要とする場合は、PHPよりも静的型付け言語であるJavaやC#などを使用することが推奨されます。
脚註編集
- ^ PHP7.4系列は、2022/11/28にEnd of lifeを迎えました。
- ^ Unsupported Branches
- ^ Supported Versions(2022-12-02)