4.5 延迟静态绑定:static 关键字 《深入PHP:面向对象、模式与实践》
来源:互联网 发布:杨浦区人口普查数据 编辑:程序博客网 时间:2024/05/21 06:41
报错信息: Fatal error: Cannot instantiate abstract class DomainObject in<?php
abstract class DomainObject {
public static function create() {
return new self();//这样会报错:
}
}
class User extends DomainObject {
}
class Document extends DomainObject {
}
print_r(Document::create());
<?php
abstract class DomainObject {
public static function create() {
return new static();
}
}
class User extends DomainObject {
}
class Document extends DomainObject {
}
print_r(Document::create());
运行结果:<?php
abstract class DomainObject {
private $group;
public function __construct(){
$this->group = static::getGroup();//需要是个静态方法
}
public static function create() {
return new static();
}
static function getGroup() {
return 'default';
}
}
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());
<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who();
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test();//输出A
- 4.5 延迟静态绑定:static 关键字 《深入PHP:面向对象、模式与实践》
- PHP面向对象:延迟静态绑定(static关键字)
- php面对对象之延迟静态绑定:static关键字
- 深入 PHP 面向对象、模式与实践
- 深入 PHP 面向对象、模式与实践
- 深入php面向对象、模式与实践
- 【学习点滴-php】static关键字---延迟静态绑定
- PHP静态延迟绑定:static
- 深入PHP面向对象、模式与实践——对象
- 5.3-反射API《深入PHP:面向对象、模式与实践》
- 面向对象--static静态关键字
- 面向对象的延迟绑定static
- PHP 延迟静态绑定 功能 static
- PHP "延迟静态绑定" 功能,static
- PHP面向对象6-常量,Static(静态)关键字
- 面向对象设计和过程式编程(6.2)《深入PHP:面向对象、模式与实践》
- php面向对象笔记7 类常量与延迟绑定
- php面向对象static关键字
- php之cURL学习笔记2
- cacti 实验:
- Apache 自带性能监控 server-status
- PHP 链式操作 __call call_user_func
- URL重写(rewirte)实验
- 4.5 延迟静态绑定:static 关键字 《深入PHP:面向对象、模式与实践》
- 多租户技术 【摘】---共用、隔离
- LVS 的持久连接访问 【摘】
- innodb double write buffer刷单页场景
- Mysql数据库索引查询优化的分享 [转]
- 存储相关介绍
- 跨网站脚本(Cross-site scripting)介绍
- Shell脚本 ---执行脚本前,权限最好chmod a+x filename
- 变量的设置规则