PHPにおけるnew static()とnew self()の違い
1485 ワード
PHPにおけるnew static()とnew self()の違い
self:常にselfコードが存在するクラス自体を指し、このクラスが何度継承されてもselfは最初にselfを使用したクラスを指す.static:staticを使用するクラスを指し、継承することによってのみstaticの存在の意味を体現することができ、そうでなければstaticはselfと同じである.
疑問:1、new static()とnew self()が何の役に立つか分からない.2、new self()を使用する場合、なぜnew A()を使用しないのか.
self:常にselfコードが存在するクラス自体を指し、このクラスが何度継承されてもselfは最初にselfを使用したクラスを指す.static:staticを使用するクラスを指し、継承することによってのみstaticの存在の意味を体現することができ、そうでなければstaticはselfと同じである.
class A {
public function getStatic(){
return new static();
}
public function getSelf(){
return new self();
}
}
class B extends A{
}
var_dump((new B())->getSelf());//A
var_dump((new B())->getStatic());//B
疑問:1、new static()とnew self()が何の役に立つか分からない.2、new self()を使用する場合、なぜnew A()を使用しないのか.