>和::
可能重复:
在PHP中,::和 - >有什么区别?
在PHP中,使用箭头->
和范围解析运算符::
在类内调用函数()时,主要区别是什么?
为了获得更多许可,以下几点之间的差异:
$name = $foo->getName();
$name = $foo::getName();
范围解析操作符的主要利润是什么::
?
$name = $foo->getName();
这将调用对象$foo
的成员或静态函数
$name = $foo::getName();
将调用$foo
类的静态函数。 如果你想称之为“利润”,使用::
就能够访问类的静态成员,而不需要这样的类的对象实例。 那是,
$name = ClassOfFoo::getName();
它们适用于不同的功能类型。 ->
总是在静态和非静态方法的对象上使用(尽管我不认为用静态方法使用->
是很好的做法)。 ::
仅用于静态方法,可用于对象(从PHP 5.3起) 以及更重要的类 。
<?php
class aClass {
static function aStaticMethod() {}
function aNormalMethod() {}
}
$obj = new aClass();
$obj->aNormalMethod(); //allowed
$obj->aStaticMethod(); //allowed
$obj::aStaticMethod(); //allowed as of PHP 5.3
$class_name = get_class( $obj );
$class_name::aStaticMethod(); //long hand for $obj::aStaticMethod()
aClass::aStaticMethod(); //allowed
//aClass::aNormalMethod(); //not allowed
//aClass->aStaticMethod(); //not allowed
//aClass->aNormalMethod(); //not allowed
链接地址: http://www.djcxy.com/p/58009.html
上一篇: > and ::
下一篇: Is there an after view change hook (much like didInsertElement)?