>和::

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