在php web手册的侧边栏中,link text addChild方法使用::
范围解析运算符,但在示例中它使用了Arrow运算符。谁能告诉我为什么会这样?
答案 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();
答案 1 :(得分:4)
这仅仅是因为它是对象的方法并且与实际用法无关。
在文档的情况下,您不处理像$object
这样的对象的实例,因此->
运算符不正确,因为您要列出实际的类名。因此,在使用静态方法(类名称为静态)后,请使用范围res。 operator ::
...
这通常是php文档如何适用于类。
答案 2 :(得分:3)
箭头表示addChild被称为对象的成员(在本例中为$ sxe)。
双冒号意味着addChild是SimpleXMLElement类的成员。