开发者社区> 问答> 正文

请教php中"::"的使用问题

在子类中是使用parent::方法()这种方式访问父类中的方法,但是“::”是用来访问静态的东西,如果这个方法不是静态的,那不就自相矛盾吗,为什么还可以访问?

展开
收起
落地花开啦 2016-06-13 11:44:22 2001 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    在php文件的任何位置都可以使用 classname::methodname()来直接调用类里面公用的方法。个人觉得出现这个情况是因为内存的堆区保存的对象仅保存的是对象的属性,对象的方法任然存放在代码区,为类的成员方法,如果使用对象来调用的类的成员方法里面不含$this的话,此时这个方法和静态数据区存放的静态方法并无明显区别。
    即此时对象的成员方法与该对象的静态方法并无明显区别,都并不随着调用对象的不同,而发生不同的变化。

    2019-07-17 19:35:33
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载