ホームページ  >  記事  >  バックエンド開発  >  PHP の新しい静的と新しい自己

PHP の新しい静的と新しい自己

藏色散人
藏色散人転載
2019-09-26 09:18:122537ブラウズ

以下にクリを与えてみましょう:

class Father {
    public static function getSelf() {
        return new self();
    }
    public static function getStatic() {
        return new static();
    }
}
class Son extends Father {}
echo get_class(Son::getSelf()); // Father
echo get_class(Son::getStatic()); // Son
echo get_class(Father::getSelf()); // Father
echo get_class(Father::getStatic()); // Father

new self

ここで、この行 get_class(Son::getStatic()); が Son.class, を返すことに注意してください。

self は、次の例のように、new self のキーワード new が存在するクラスを返します。

public static function getSelf() {
    return new self(); // new 关键字在 Father 这里
}

は常に Father を返します。

new static

static 上記に基づくと、少し賢くなっています。static は、get_class( を実行する Son など) new static() を実行するクラスを返します。 Son: :getStatic()) は Son、Father を返します。get_class(Father::getStatic()) を実行すると Father

が返されます。継承がない場合、新しい self と新しい static は同じものを返します。結果。

以上がPHP の新しい静的と新しい自己の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdmzfaで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。