コードを甘くする。PHP の特別な使い方のまとめ (1)
最近のプロジェクトが終わりに近づいており、暇なときにいくつかの PHP フレームワークと優れたオープン ソース ソフトウェアのコードを見て、一般的に使用されているコードから学ぶことができます。次に、他のコードを読んで、あまり一般的ではない関数や特殊な使用法を理解します。これらのコードはすべて PHP 5 用にコーディングされているため、最新の機能を完全に学ぶことができます。以下は、この時期にコードを読み取るための私の特別な使用法をいくつかまとめたものです。
まず、PHP の糖衣構文について説明します。複雑な PHP アプリケーションでは、美しく使いやすいようにするために、MVC フレームワークまたは汎用フレームワークを使用するか、独自に新しいフレームワークを作成する傾向があります。構文糖衣を少し振りかけることが不可欠です。以下が役に立ちます。
1. オブジェクトをよりリッチにするマジック メソッド
PHP5 では、いくつかの新しいマジック メソッドが追加されており、その中にはオブジェクトが存在しないメソッドを実行したり、存在しないプロパティを取得したりできるものもあります。この機能は最もよく知られている高度な使用法です。知らない場合は、PHP マニュアルの「オーバーロード」セクションを確認してください。
__call および __callStatic
は、オブジェクトの存在しないメソッドを実行するときにトリガーされます。 プロトタイプは次のとおりです。
mixed __call ( string $name , array $arguments ) mixed __callStatic ( string $name , array $arguments )
void __set ( string $name , mixed $value ) mixed __get ( string $name ) bool __isset ( string $name ) void __unset ( string $name )
ArrayAccess { /* Methods */ abstract public boolean offsetExists ( string $offset ) abstract public mixed offsetGet ( string $offset ) abstract public void offsetSet ( string $offset , string $value ) abstract public void offsetUnset ( string $offset ) }
Iterator extends Traversable { /* Methods */ abstract public mixed current ( void ) abstract public scalar key ( void ) abstract public void next ( void ) abstract public void rewind ( void ) abstract public boolean valid ( void ) }
Countable { /* Methods */ abstract public int count ( void ) }