PHP的new static和new self不同在哪?使用要注意啥?
Admin 2021-12-02 群英技术资讯 1432 次浏览
PHP的new static和new self不同在哪?一些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 是返回相同的结果。
现在大家对于PHP的new static和new self不同在哪应该都清楚了吧,上述示例有一定的借鉴价值,有需要的朋友可以参考,希望对大家学习PHP有帮助,想要了解更多PHP的内容,大家可以关注群英网络其它相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在本篇文章里小编给大家整理的是一篇关于php domdocument找不到的解决办法,有需要的朋友们可以跟着学习参考下。
在laravel中,wherehas基于关联关系去过滤模型的查询结果,并且允许添加对这个模型的过滤条件,常用于过滤主表中有关从表的数据,语法为“User::whereHas('从表', function($...){$...->where(过滤条件);})->get()”。
这篇文章主要为大家详细介绍了PHP获取学生成绩的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
今天小编就为大家分享一篇php 比较获取两个数组相同和不同元素的例子(交集和差集),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
一.首先是PHP网页的编码1.php文件本身的编码与网页的编码应匹配a.如果欲使用gb2312编码,那么php要输出头:header(“Content-Type:text/html;charset=gb2312"),静态页面添加<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">,所有文件的
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008