PHP中new static和new self有何不同,分别怎么用
Admin 2022-06-20 群英技术资讯 280 次浏览
下面我们举个栗子:
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文通过设置Access-Control-Allow-Origin来实现跨域。例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。如果直接使用ajax访问,会有以下错误:1XMLHttpRequestcannotloadhttp://server.runoob.com/server.php.No'Access-Control
在thinkphp中,在“APP\middleware”目录下建立的类文件为中间件,主要用于拦截或者过滤应用的HTTP请求,并进行必要的业务处理,可以分为全局中间件、路由中间件和控制器中间件。
<?php$str='programming';//定义一个字符串$arr=str_split($str);//将字符串分割并传入数组print_r($arr);//输出数组详细信息?><?php$str='programming';//定义一个字符串$ar
PHPfpm和swoole可以共存。在php-fpm中维持TCP长连接主要借助swoole扩展提供的SWOOLE_KEEP选项,客户端设置此选项后,在请求结束时不会关闭连接,新的请求到来后可以复用TCP连接。
在php编程中使用引用传递是比较常有的事情,小编今天用了实例代码来给大家讲解这篇文章,如果你需要这方面的知识点,可以随时来参考下。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008