PHP中双冒号和箭头运算符的区别?

时间:2010-10-18 17:02:00

标签: php

在php web手册的侧边栏中,link text addChild方法使用::范围解析运算符,但在示例中它使用了Arrow运算符。谁能告诉我为什么会这样?

3 个答案:

答案 0 :(得分:112)

::用于静态元素,而->用于实例元素。

例如:

class Example {
  public static function hello(){
    echo 'hello';
  }
  public function world(){
    echo 'world';
  }
}

// Static method, can be called from the class name
Example::hello();

// Instance method, can only be called from an instance of the class
$obj = new Example();
$obj->world();

More about the static concept

答案 1 :(得分:4)

这仅仅是因为它是对象的方法并且与实际用法无关。

在文档的情况下,您不处理像$object这样的对象的实例,因此->运算符不正确,因为您要列出实际的类名。因此,在使用静态方法(类名称为静态)后,请使用范围res。 operator :: ...

这通常是php文档如何适用于类。

答案 2 :(得分:3)

箭头表示addChild被称为对象的成员(在本例中为$ sxe)。

双冒号意味着addChild是SimpleXMLElement类的成员。