区别PHP中new self() 和 new static()
发布:smiling 来源: PHP粉丝网 添加日期:2022-06-21 08:22:05 浏览: 评论:0
PHP中new self() 和 new static() 的区别
new static() 是在php5.3版本引入的新特性
new static 和 new self() 都是 new 一个对象
直接看代码:
- class Father
- {
- public function getNewFather()
- {
- return new self();
- }
- public function getNewCaller()
- {
- return new static();
- }
- }
- $f = new Father();
- var_dump(get_class($f->getNewFather())); // Father
- var_dump(get_class($f->getNewCaller())); // Father
getNewFather和getNewCaller 都是返回的 Father 这个实列
到这里貌似 new self() 还是 new static() 是没有区别的
接着看下面的示例:
- class Sun1 extends Father{
- }
- $sun1 = new Sun1();
- var_dump($sun1->getNewFather()); // object(Father)#4 (0) { }
- var_dump($sun1->getNewCaller()); // object(Sun1)#4 (0) { }
getNewFather 返回的是Father的实列,
getNewCaller 返回的是调用者的实列
他们的区别只有在继承中才能体现出来、如果没有任何继承、那么二者没有任何区别
new self() 返回的实列是不会变的,无论谁去调用,都返回的一个类的实列,
new static则是由调用者决定的。
Tags: self static
- 上一篇:集结php常用前端语法
- 下一篇:最后一页
相关文章
- ·PHP中new static()与new self()的区别异同分析(2021-04-08)
- ·PHP中new static() 和 new self() 的区别介绍(2021-05-08)
- ·PHP的new static和new self的区别与使用(2022-01-24)
- ·PHP Class self 与 static 异同与使用详解(2022-05-14)
- ·详解PHP中self关键字(2022-06-20)
- ·php中static关键字对变量和函数影响(2014-02-21)
- ·php中final static $this关键字学习笔记(2014-03-07)
- ·PHP中::、->、self、$this操作符(2014-03-10)
- ·php中global static和$GLOBALS使用与区别(2014-03-13)
- ·php中global和static两个关键字详解(2014-07-30)
- ·php中static const define变量的区别(2015-04-08)
- ·php之static静态属性与静态方法实例分析(2021-06-15)
- ·PHP中的静态变量及static静态变量使用详解(2021-06-25)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)