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?
Réponses
Trop de publicités? ::
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();
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.