首页 > 作文

php new static与new self 的区别

更新时间:2023-04-08 23:43:25 阅读: 评论:0

前段时间封装了一个类库:部分代码如下

class A{ private function __construct(){ }public static  function instance($args){ if(!(lf::$instance of lf)){ //do something w美容店装修图片ith args lf::$instance = new lf();}return instance ; }}class B extends a{ }var_dump(B::instance([]))//object(A)······

为了方便扩展,便写了个子类 继承了这个类,但是在使用的时候发现,获取非主流黑白伤感图片的实例都是父类的实例。

将代码中的new lf 改为new static 即可:

class A{ private function __construct(){ }public static  function instance($args){ if(!(lf::$instance of lf)){ //do something with args lf::$instance = new static();}return instance ; }}class B extends a{ }var_dump(B::instance([]))//object(B)······
素质拓展游戏

new static 比较聪明,返回的是当前类的实例,new lf比较死板, 返回的是父类的实例。
若无继承关系,new static 与new lf 无任何区别。

另注:代码中调用方法或者变量与new static 和 new lf 的情况类似,

若子类重写了方法或者静态变量,那么通过static关键字调用,则使用子类重写的方法或者是静态变量。通过lf调用,这使用父类的方法或者变量(静态)

本文地址:首页无法修改https://blog.csdn.net/h新剑侠情缘3uang_cheng_zhi/article/details/109642829

本文发布于:2023-04-08 23:43:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/a6596ff27c136e5467b3129f95a2a193.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php new static与new self 的区别.doc

本文 PDF 下载地址:php new static与new self 的区别.pdf

标签:子类   变量   的是   实例
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图