PHP8.0の親クラス呼び出し構文

WBOY
リリース: 2023-05-14 13:02:02
オリジナル
945 人が閲覧しました

PHP は Web 開発で広く使用されているサーバー側スクリプト言語であり、PHP 8.0 バージョンでは、オブジェクト指向プログラミングをより便利かつ簡潔にするための新しい親クラス呼び出し構文が導入されています。

PHP では、継承を通じて親クラスと 1 つ以上のサブクラスを作成できます。サブクラスは親クラスのプロパティとメソッドを継承でき、親クラスのメソッドをオーバーライドすることで機能を変更または拡張できます。

通常の PHP 継承では、サブクラスで親クラスのメソッドを呼び出したい場合は、parent キーワードを使用して親クラスのメソッドを参照する必要があります:

class ParentClass {
    public function parentMethod() {
        echo "Hello from parent method
";
    }
}

class ChildClass extends ParentClass {
    public function childMethod() {
        parent::parentMethod(); //使用parent关键字来引用父类方法
        echo "Hello from child method
";
    }
}

$obj = new ChildClass();
$obj->childMethod(); //输出 Hello from parent method 和 Hello from child method
ログイン後にコピー

上記のコードでは、childMethod() メソッドは、parent::parentMethod() を使用して ParentClass のparentMethod() メソッドを呼び出し、メソッドの最後に「Hello from child Method」という文字列を出力します。

PHP 8.0 では、より簡潔な構文を使用して親クラスのメソッドを呼び出すことができます。新しい構文では、parent キーワードの代わりに static キーワードが使用されます (例:

class ParentClass {
    public static function parentMethod() {
        echo "Hello from parent method
";
    }
}

class ChildClass extends ParentClass {
    public function childMethod() {
        static::parentMethod(); //使用static关键字代替parent关键字来引用父类方法
        echo "Hello from child method
";
    }
}

$obj = new ChildClass();
$obj->childMethod(); //输出 Hello from parent method 和 Hello from child method
ログイン後にコピー

上記のコードでは、parentMethod() メソッドが静的メソッドになります。static::parentMethod を使用して親クラスを呼び出すことができます) ()parentMethod()メソッド。この新しい構文により、コードがより明瞭で読みやすくなり、継承階層内のクラス名について考える必要がなくなるため、コードのメンテナンスの問題も回避できます。

静的メソッドの使用に加えて、この新しい構文を他の場所でも使用できます。たとえば、API 呼び出しでは、トレイトとインターフェイスで構成される構造を使用して、多重継承と同様の機能を実装します。この場合、この新しい構文を使用すると、コードの意図をより明確に表現できます:

interface ParentInterface {
    public function parentMethod();
}

trait ParentTrait {
    public function parentMethod() {
        echo "Hello from parent trait method
";
    }
}

class ChildClass implements ParentInterface {
    use ParentTrait;

    public function childMethod() {
        static::parentMethod(); //使用新语法来调用父类trait中的方法
        echo "Hello from child method
";
    }
}

$obj = new ChildClass();
$obj->childMethod(); //输出 Hello from parent trait method 和 Hello from child method
ログイン後にコピー

この例では、ParentInterface と ParentTrait を定義します。これら 2 つの構造は ChildClass ( use) を通じて実装され、同様の構造を形成します。多重継承に。次に、ChildClass の childMethod() で、新しい構文を使用して ParentTrait のparentMethod() メソッドを呼び出します。このアプローチにより、コードがより簡潔になり、理解しやすくなります。

要約すると、PHP 8.0 では、新しい親クラス呼び出し構文を使用できます。つまり、parent キーワードの代わりに static キーワードを使用して、親クラス メソッドの呼び出しをより明確かつ簡潔に表現できます。この機能により、多くのシナリオでコードが読みやすく、理解しやすくなります。 PHP 開発者にとって、この新機能を理解して習得することは非常に重要です。

以上がPHP8.0の親クラス呼び出し構文の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート