PHP中new static和new self有何不同,分别怎么用
Admin 2022-06-20 群英技术资讯 916 次浏览
这篇文章将为大家详细讲解有关“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 是返回相同的结果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在本篇文章里小编给大家整理的是一篇关于PHP函数__autoload失效原因及解决方法,有兴趣的朋友们可以学习下。
我们知道PHP是属于弱类型语言,与Java和C++这些强类型语言不同,弱类型语言是自动转换数据类型的,强类型语言必须手动什么类型。那么PHP数据类型如何转换呢?有几种转换方法?下面我们一起来来了解一下。
一、简介自PHP5起完全重写了对象模型以得到更佳性能和更多特性。这是自PHP4以来的最大变化。PHP5具有完整的对象模型。PHP5中的新特性包括访问控制,抽象类和 ...
swoole保持不掉线的方法:Swoole扩展可以通过心跳机制来保持不掉线,这个机制保证服务器和客户端之间连接的有效性。Swoole扩展本身内置了这种机制,开发者只需要配置一个参数即可启用。
call_user_func(PHP4,PHP5)call_user_func — 传入一个参数来调用回调函数说明mixed call_user_func ( callable $callback [, mixed $parameter [, m...
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
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