Bonjour,
Bonjour j'ai une question bête mais qui mérite d'être posé.
En réalisant un tuto de Grafikart, j'ai le code qui suit :
<?php
namespace Core\Entity;
/**
*
*/
class Entity {
public function __get($key){
$method = 'get'.ucfirst($key);
$this->$key = $this->$method();
return $this->$key;
}
}
à quoi correspond la $method() ?
Et pourquoi après le $this-> j'ai une "$" qui précéde le nom de la méthode ?
Je n'ai encore jamais vu cela quelque part.
Si $key
= toto, alors $method
= getToto
Le nom de la méthode à appeler est stocké dans la variable $method
En gros en php on peut dynamiquement mettre le nom d'une variable ou méthode :
$title = 'Toto à la plage';
$other_title = 'Titi';
$name = 'title';
echo $title; // Toto à la plage
echo $$name; // Toto à la plage
echo $other_title; // Titi
echo ${'other_'.$name}; // Titi
C'est pareil avec des méthode que l'on appel via la flèche '->'
Tu as également la possibilité d'utiliser la fonction php call_user_function, si ça te paraît plus lisible...