Разница между операторами двойной толстой кишки и стрелкой в ​​PHP?

В боковой панели руководства по php-интерфейсу текст ссылки метод addChild использует оператор разрешения области ::, но в примере это использует оператор Arrow. Может кто-нибудь сказать мне, почему это?

Ответы

Ответ 1

:: для статических элементов, а -> - это, например, элементы.

Например:

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();

Подробнее о статической концепции

Ответ 2

Это всего лишь обозначение того факта, что его метод объекта и не имеет никакого отношения к фактическому использованию.

В случае документации вы не имеете дело с экземпляром объекта типа $object, поэтому оператор -> не будет правильным, так как вы хотите перечислить фактическое имя класса. Поэтому, следуя использованию для статического метода, когда имя класса статично, вы используете область res. оператор ::...

Как правило, документация php работает для классов.

Ответ 3

Стрелка означает, что addChild вызывается как член объекта (в данном случае $sxe).

Двойной двоеточие означает, что addChild является членом класса SimpleXMLElement.