PHP new self和new static的区别
abstract class DomainObject{public static function create(){return new self();}
}class User extends DomainObject{}
class Document extends DomainObject{}var_dump(Document::create());
结果:Fatal error: Cannot instantiate abstract class DomainObject in......
self 对当前类的静态引用,取决于定义当前方法所在的类。也就是说,这里的self被解析为定义create()的DomainObject,而不是解析为调用self的Document类。
abstract class DomainObject{public static function create(){return new static();//延迟静态绑定}
}class User extends DomainObject{}
class Document extends DomainObject{}var_dump(Document::create());
结果:
class Document#1 (0) {
}
转载于:https://blog.51cto.com/xtceetg/1743064
PHP new self和new static的区别相关推荐
- PHP中self和static的区别,php中self与static的区别
原文链接,猛击这里. php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别.假定我们有class Car – 它有两个方法,model和getModel. ...
- C# 总结const、 readonly、 static三者区别:
总结const. readonly. static三者区别: (有人问我,看似简单,我也没能立刻回答出来,总结一下,分享一下.) const:静态常量,也称编译时常量(compile-time con ...
- PHP Class中public,private,protected,static的区别
PHP Class中public,private,protected,static的区别 public:权限是最大的,可以内部调用,实例调用,可以被继承. protected:受保护类型,用于本类和继 ...
- php new static,PHP中new self()和new static()的区别用法
浅谈PHP中new self()和new static()的区别 本文介绍了PHP中new self()和new static()的区别,分享给大家,也给自己留个笔记. 1.new static() ...
- auto static 的区别
1.static变量存放在静态存储区,在程序整个运行期间都不释放:而auto变量存放在动态存储区,随着生命周期的结束而立即释放. 2.static变量只赋值一次,以后就不用赋值(但是值是可以改变的,与 ...
- php self this static,php面向对象中self和static的区别
在php的面向对象编程中,总会遇到 class test{ public static function test(){ self::func(); static::func(); } public ...
- 黑马程序员-Struct与Static的区别与联系?
Struct与Static的区别与联系? 在C#的基础学习中,我对结构和方法总是容易混淆,一来二者长的太像,容易敲错:二来对它们的概念和用法理解不深,容易混淆.今天特此写篇博客来说明他们之间的区别与联 ...
- private static PHP,PHP延时静态绑定以及self 和 static 的区别 | 剑花烟雨江南
首先我们来看下,self和static的区别: class A { public static $num = 1; public static function show(){ echo self: ...
- final、static、static fina区别
final: final可以修饰:属性,方法,类,局部变量(方法中的变量)final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变.final修饰的属性跟具体对象有关,在运行期初始 ...
- const和static readonly 区别
我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等. 在多数情况下可以混用. 二者本质的区别在于,const的值是在编译期间确定的,因此只能 ...
最新文章
- react native的单选按钮react-native-radio-master
- [redis] Redis 常用命令
- 电力系统通信站和设备管理系统分析设计
- Android实现数据存储技术
- 根据数据库表gengxin实体类_ASP.NET开发实战——(十二)数据库之EF Migrations
- 用Jackson编写大型JSON文件
- django html显示xml,如何将HTML与Django集成?
- 动手学CV-目标检测入门教程:基本概念
- html5把六张图片做成立方体,HTML5绘制在立方体上的几何曲线图形
- PyTorch 1.0 中文文档:多进程包 - torch.multiprocessing
- java.lang.UnsatisfiedLinkError: no XXX in java.library.path
- C#中ToString()格式详解
- 来自天国的 kubernetes
- 数据结构(c语言版)各章内容总结
- matlab绝对均值,MATLAB中均值、方差、均方差的计算方法
- 【统信UOS】扫描仪设备管理驱动安装
- tensorflow 77 tensorflow android版本demo win10 下 编译
- msvcr71.dll缺失导致Oracle无法连接
- 一个华为人在华为工作十年的感悟 --徐家骏
- 微服务 —— ThoughtWorks首席科学家的早期文章
热门文章
- 《.NET应用架构设计:原则、模式与实践》新书博客--试读-2.1.2 设计原则实战
- docker安装chirpstack_docker-compose快速部署ChirpStack
- pythonrequest方法_解决Python requests 报错方法集锦
- 学会使用 diff 和 patch 命令协同开发
- 【哈渡谱】带你玩转Hadoop之《主机映射、镜像挂载与SSH免密篇》
- 关于学习Python的一点学习总结(5->切片赋值->sort排序->列表操作)
- HDU1261(高精度乘法+高精度除法)
- 组合计数 ---- Codeforces Round #370 (Div. 2)D. Memory and Scores[dp]
- JAVA中jsp怎么接收参数_如何使用JSP从URL获取参数
- jsp与java_JSP与JavaBeans