この記事では、PHP の new static() と new self() の相違点と類似点の分析を主に紹介します。これは、PHP プログラミングを学習するすべての人にとって役立つと思います。
問題の原因はローカルにサイトを構築していることです。 PHP 5.2 を使用して構築できないことがわかりました。Web サイトのPHP コード には 5.3 以降の部分が多く含まれており、5.2 で実行するには変更が必要でした。
場所を変えたら、return new static($val);
return new self($val);
class A { public static function get_self() { return new self(); } public static function get_static() { return new static(); } } class B extends A {} echo get_class(B::get_self()); // A echo get_class(B::get_static()); // B echo get_class(A::get_static()); // A
class A { public function create1() { $class = get_class($this); return new $class(); } public function create2() { return new static(); } } class B extends A { } $b = new B(); var_dump(get_class($b->create1()), get_class($b->create2())); /* The result string(1) "B" string(1) "B" */
rrreee
興味のある友人はサンプル コードをテストして、新たなメリットがあると信じています。以上がnew static() と new self() の違いと使い方の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。