PHP 7.0 で変わったこと

処理速度改善+メモリ消費量節約
PHP7
PHP 7.0は、2015 年(平成 27 年)12 月 3 日に正式版がリリースされた。PHP 5 との互換性を維持しつつ、2 倍以上の応答速度向上やメモリ使用量を低減するなど、さまざまな改善が盛り込まれた。
PHP 7.0 のセキュリティサポート期限は 2018 年(平成 30 年)12 月 3 日である。
2004 年(平成 16 年)7 月に PHP 5 が登場し、その後、内部処理を UTF-16 に統一する PHP 6 の開発が進められていた。しかし、開発は難航し、実装が複雑になる割に機能改善が見込まれないことから、2010 年(平成 22 年)春、PHP 5.3 へロールバックすることが決まった。
そして、機能改善を主眼に置いた次期バージョンは 6 をスキップして PHP 7 の名が冠せられることになった。

ここでは、PHP 5.6 から 7.0 へ移行するためのポイントを整理する。

性能改善

まず、Persistent Secondary File-based Cache の採用で、これまで共有メモリにあったキャッシュをディスクにも保存するようにしたため、PHP アプリケーションをリスタートしてもキャッシュの内容がすぐにメモリに展開され、すぐ高速に動くようになった。
内部データ構造も大幅に変更され、とくに zval 構造体 の変更により高速化を実現するとともに、メモリ消費量を半分から 3 分の 1 に抑えることを可能にしている。

スカラー型宣言

新機能として、スカラー型宣言が加わった。
パラメータに型宣言を行うことで、他の言語のように、授受する値が不正な型であるかどうかチェックできる。
スカラー型宣言には、従来のような自動変換 (coercive) モードと、 厳密に判断する strict モードの 2種類がある。 パラメータとして、 文字列 (string)、整数 (int)、浮動小数点数 (float)、boolean (bool) といった型を、いずれかの方式で強制できるようになった。
さらに、戻り値の型宣言もできるようになった。

宇宙船演算子

新機能として、宇宙船演算子 "<=>" をサポートした。比較演算の一種で、小さい場合には -1、等しい場合には 0、大きい場合には+1 を返す。

0014: function compare(float $xfloat $y) {
0015:     return $x <=> $y;
0016: }

上記のユーザー関数は宇宙船演算子の使用例である。引数にスカラー型宣言を行っており、引数が float 型以外の時には例外を発生する。
下記のテキストボックスに何か入力して計算ボタンを押下すると、その挙動が分かる。

PHPバージョン 8.0.3

 <=> 
結果=-1

無名クラス

新機能として、無名クラスをサポートした。
一度しか使わないようなクラスを定義するときに便利だ。

Expectation

従来、 assert  関数を使った例外処理が行われてきたが、Expectation は関数の機能を保ったまま、アサート処理を構文法に格上げしたものである。

推奨されなくなる機能

PHP 7.0 で推奨されなくなる機能
非推奨機能 代替方法
PHP 4 形式のコンストラクタ 将来的に削除予定。
非 static メソッドに対する static 呼び出し 将来的に削除予定。
password_hash() の salt オプション salt オプションを使用しない。
capture_session_meta SSL コンテキストオプション SSL メタデータは stream_get_meta_data() 関数を利用する。
LDAP ldap_sort 関数を使用しない。

参考サイト

(この項おわり)
header