PHP的new static和new self的区别与使用
发布:smiling 来源: PHP粉丝网 添加日期:2022-01-24 14:25:13 浏览: 评论:0
这篇文章主要介绍了PHP的new static和new self的区别与使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
下面我们举个栗子:
- class Father {
- public static function getSelf() {
- return new self();
- }
- public static function getStatic() {
- return new static();
- }
- }
- class Son extends Father {}
- echo get_class(Son::getSelf()); // Father
- echo get_class(Son::getStatic()); // Son
- echo get_class(Father::getSelf()); // Father
- echo get_class(Father::getStatic()); // Father
- new self
这里面注意这一行 get_class(Son::getStatic()); 返回的是 Son 这个 class, 可以总结如下:
self 返回的是 new self 中关键字 new 所在的类中,比如这里例子的 :
- public static function getSelf() {
- return new self(); // new 关键字在 Father 这里
- }
始终返回 Father。
new static
static 则上面的基础上,更聪明一点点:static 会返回执行 new static() 的类,比如 Son 执行 get_class(Son::getStatic()) 返回的是 Son, Father 执行 get_class(Father::getStatic()) 返回的是 Father
而在没有继承的情况下,可以认为 new self 和 new static 是返回相同的结果。
Tags: new static self
- 上一篇:php 使用expat方式解析xml文件操作示例
- 下一篇:最后一页
相关文章
- ·PHP中new static() 和 new self() 的区别介绍(2021-05-08)
- ·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中new static()与new self()的区别异同分析(2021-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)