php遅延静的バインド:staticキーワード
1962 ワード
abstract class DomainObject {
public static function create()
{
return new self();
}
}
class User extends DomainObject {}
class Document extends DomainObject {}
print_r(Document::create());
以上のコードの実行に失敗しました.selfがDomainObjectとして解析されたため、selfをstaticに変換しました.
abstract class DomainObject {
public static function create()
{
return new static();
}
}
class User extends DomainObject {}
class Document extends DomainObject {}
print_r(Document::create());
実行に成功しました.ブラウザの出力は
Document Object ( )
staticはselfに似ていますが、クラスを含むのではなく呼び出されたクラスを指します.