“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。
<?php
/**
* Created by PhpStorm.
* User: root
* Date: 11/7/18
* Time: 12:57 PM
*/
abstract class DomainObject{
private $group;
public function __construct(){
$this->group = static::getGroup();
}
public static function create(){
return new static();
}
static function getGroup(){
return "defult";
}
}
class User extends DomainObject{
}
class Document extends DomainObject{
static function getGroup(){
return "document";
}
}
class SpreadSheet extends Document{
}
print_r(User::create());
print_r(SpreadSheet::create());
``