PHP

【PHP】PHP7では abstract static function はエラーにならない

Googleで「php abstract static function」 を検索すると、抽象クラスで abstract static function は宣言できないという記事がいくつか上位に出てきて混乱したのでメモしておきます。

abstract static function はPHP 5.2で一度使用できなくなりましたが、PHP7では再び使用できるようになっています。

従って、下記のコードはPHP7では問題なく動作します。

PHP
abstract class AbstractClass
{
    // 静的な抽象メソッドを宣言
    abstract static public function method();
}

class ExtendedClass extends AbstractClass
{
    // 静的な抽象メソッドの実装
    static public function method()
    {
        // do something
    }
}

// 静的メソッドの呼び出し
ExtendedClass::method();

参考:PHP 5.6.x から PHP 7.0.x への移行:下位互換性のない変更点