您好,匿名用户
随意问技术百科期待您的加入

php中::的使用问题?

0 投票

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

用户头像 提问 2013年 11月8日 @ Swain 上等兵 (232 威望)
分享到:

1个回答

0 投票

在php文件的任何位置都可以使用 classname::methodname()来直接调用类里面公用的方法。个人觉得出现这个情况是因为
内存的堆区保存的对象仅保存的是对象的属性,对象的方法任然存放在代码区,为类的成员方法,如果使用对象来调用的类的成员方法里面不含$this的话,此时这个方法和静态数据区存放的静态方法并无明显区别。即此时对象的成员方法与该对象的静态方法并无明显区别
都并不随着调用对象的不同,而发生不同的变化。
并且成员方法本身就是在类中定义的,就是老爸和儿子的关系,区别就是一个是自己老婆生的(静态方法),另外一个是和别人老婆生的(成员方法),别人老婆生的那个儿子就管其他人叫老爸了。某一天那个私生的儿子了解情况了(无$this)。便会叫两人叫爸了。
此时便可以使用classname::methodname()

用户头像 回复 2013年 11月8日 @ Sagittarius 上等兵 (289 威望)
提一个问题:

相关问题

0 投票
1 回复 26 阅读
用户头像 提问 2013年 11月21日 @ Soraka 上等兵 (319 威望)
0 投票
1 回复 22 阅读
用户头像 提问 2013年 11月14日 @ Poseidon 上等兵 (188 威望)
0 投票
0 回复 25 阅读
0 投票
1 回复 62 阅读
用户头像 提问 2013年 9月18日 @ Darius 上等兵 (331 威望)
+2 投票
1 回复 55 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...