しかし、私には思えるように、誰もが開いた機会について知っているわけではありません。
実験用のインターフェース、クラス、オブジェクトを作成しましょう。
interface bar{ const SOME_CONST = 'SOME_CONST'; static public function static_public_function(); } class foo implements bar{ static public $static_public_property = 'static_public_propery'; static public function static_public_function(){ return 'static_public_function'; } } $object = new foo();
5.3以前の両方で機能するコード。 オブジェクトを使用可能にした場合、そのクラスを見つける必要がありました。
echo foo::SOME_CONST . PHP_EOL; // SOME_CONST echo foo::$static_public_property . PHP_EOL; // static_public_property echo foo::static_public_function() . PHP_EOL; // static_public_function echo bar::SOME_CONST . PHP_EOL; // SOME_CONST
PHP 5.3以降で動作するコード。 現在、クラスを指定する必要はありません。
echo $object::$static_public_property . PHP_EOL; // static_public_property echo $object::SOME_CONST . PHP_EOL; // SOME_CONST echo $object::static_public_function() . PHP_EOL; // static_public_function
定数と静的メソッドは、PHPのインターフェイスの出現の最初からインターフェイスで宣言できます。 しかし、それらを使用するには、インターフェイスまたはクラスの名前を指定する必要がありました。 これで、オブジェクトを使用してこのデータにアクセスできます。 バージョン5.3以降、定数と静的メソッドはインターフェースの本格的な部分になったと言えます。
このため、クラス名とインターフェイスの使用回数を減らすことができます。 また、IDEのオートコンプリートを「手元」オブジェクトとともに使用します。