手册上为什么是双冒号呢?

帖子列表 发布于 2013/05/31 13:20
阅读 306
收藏 1
PHP

手册上写:ReflectionClass::getConstant, 但是例子却只有实例化后调用$obj->getconstant()的方式,怎样静态调用呢?

http://www.php.net/manual/en/reflectionclass.getconstant.php




加载中
0
南湖船老大
南湖船老大

引用来自“yiane”的答案

ReflectionClass::getConstant

双冒号调用静态方法,不用new


不是这个原因,PHP手册还ReflectionClass::__construct呢,PHP还能parent::__construct()呢,构造函数不是静态方法吧。

这里的::不是只能表示调用静态函数,就是调用一个函数的意思。PHP手册在这里做的容易误导,可能这么写应该是为了看起来格式统一点吧。

南湖船老大
南湖船老大
回复 @李马燕 : 这么写应该是为了看起来格式统一点吧
帖子列表
帖子列表
谢谢,确实被误导了
0
南湖船老大
南湖船老大

其实 ::这种调用形式也许一种败笔,因为在其他语言里,比如Java/.Net里都没有这个东西(.Net有::语法,但不是静态调用的意思,Java就根本没有这个语法)。

当然,仁者见仁,智者见智,有人觉得这样容易区分,有人觉得完全没必要。反正我经常在这些语言里转,有时候很容易被搞混。

yiane
yiane
java中静态非静态都用. C++中也有::
0
hylent
hylent
c++ 里 实现类成员函数的时候不管是不是静态方法 都是在cpp文件里以 :: 的形式写的 php应该是受其影响的
-1
yiane
yiane

ReflectionClass::getConstant

双冒号调用静态方法,不用new


返回顶部
顶部