>和::
可能重复:
在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)?
