PHP5 には、この章で後ほど詳しく説明する、単一継承、アクセス制限付きのオーバーロード可能なオブジェクト モデルがあり、さらに、PHP では、プロパティとメソッドのアクセス制限がサポートされています。最後に、PHP では、サブクラスが親クラスからメンバーをオーバーロードできるようにします。
file://haohappy 注: PHP4 には private はありません。public.private のみが有効です。
PHP5 のオブジェクト モデルはオブジェクトを他のデータ型とは異なるものとして扱い、PHP ではオブジェクトを参照によって表現する必要がありません。モデルについては、この章の最後で詳しく説明します。これは、PHP5 の最も重要な新機能です。
より直接的なオブジェクト モデルにより、ハンドルベースのシステムにはさらなる利点があります: 効率の向上、消費電力の向上。
以前のバージョンの PHP では、スクリプトはデフォルトでオブジェクトをコピーしていましたが、PHP5 では、スクリプトの実行効率が向上しました。オブジェクト システムは複雑さをもたらしますが、同時に、コピーを削減することで占有されるメモリが減り、より多くのメモリを他の操作に使用できるようになり、改善されます。
file://haohappy 注: ハンドルに基づいて、2 つのオブジェクトが同じメモリをポイントできることを意味します。これにより、コピー操作が削減されるだけでなく、メモリの使用量も削減されます。
Zand Engine 2 にはさらに柔軟性があり、オブジェクトが破棄される前にクラス メソッドを実行するデストラクターが可能になり、オブジェクトへの参照がない場合に PHP が明確に認識できるようになります。解放されたメモリを他の用途に割り当てます。