その他の機能向上
- メモリ管理を改善しデフォルトのメモリ制限を増加しました。 新しいメモリマネージャは、以前のものに比べて より少ないメモリでより高速に動作するようになりました。 システムから取得したメモリをラージブロックに割り当て、 自分でヒープを管理します。 これまでのバージョンでは、
emalloc()
がコールされるたびにphp.ini
のmemory_limit
をチェックしていました。 現在は、システムから実際にメモリを取得する際にのみチェックしています。 つまり、memory_limit
はこれまでに比べて大幅に精度が上がったということです。 これまでのメモリマネージャは、malloc
ライブラリが使用するメモリのオーバーヘッドを考慮していませんでした。 このように計算精度を向上させたおかげで、 これまでより効率的にメモリを使用できるようになりました。 これに対応するため、デフォルトのmemory_limit
設定も変更され、 8 メガバイトから 16 メガバイトとなりました。 - インターフェイスのコンストラクタで、 実装クラスのコンストラクタのシグネチャを強制できるようになりました。 PHP 5.2.0 以降で、インターフェイスにコンストラクタを定義できるようになりました。 しかし、インターフェイスでコンストラクタを宣言した場合は、 そのインターフェイスを実装するクラスは インターフェイスのコンストラクタと同じシグネチャのコンストラクタを持つ必要があります。 ここでいう「シグネチャ」とは、パラメータや返り値の定義のことです。 また、型ヒントや 参照渡し/値渡し の区別なども含まれます。