php 延迟静态绑定: static关键字

it2025-01-22  30

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,但它指的是被调用的类而不是包含类

转载于:https://www.cnblogs.com/hailspace/p/3398766.html

最新回复(0)