56 votes

Différence entre les opérateurs double-colon et flèche en PHP?

Dans l'encadré du manuel Web php, le texte du lien de la méthode addChild utilise l'opérateur de résolution d'étendue :: , mais dans l'exemple, il utilise l'opérateur Arrow. Quelqu'un peut-il me dire pourquoi?

113voto

wildpeaks Points 4804

:: concerne les éléments statiques, tandis que -> correspond aux éléments.

Par exemple:

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

En savoir plus sur le concept statique

4voto

prodigitalson Points 38549

C'est juste une notation pour le fait que c'est la méthode d'un objet et n'a rien à voir avec l'utilisation réelle.

Dans le cas de la documentation vous n'êtes pas affaire à une instance d'un objet, comme $object si l' -> opérateur ne sera pas correcte, car vous souhaitez ajouter à la liste le nom de la classe réelle. Suite à l'utilisation d'une méthode statique où le nom de la classe est statique vous utilisez le champ d'application rés. opérateur de ::...

C'est généralement la façon de documentation de php fonctionne pour les classes.

3voto

Diod Points 11

La flèche signifie que addChild est appelé en tant que membre de l'objet (dans ce cas, $ sxe).

Les doubles points signifient que addChild est membre de la classe SimpleXMLElement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X