__get() __set() avec PHP8.2 sont ils toujours aussi Magique
Bonjour, depuis PHP 8.2 on ne peut plus déclarer dynamiquement les propriétés
Quand on utilise __get() pour transformer l'appel d'une fonction $post->getUrl() en $post->url
Si __get() si trouve dans une class (Article par exemple)
Code:
1 2 3 4 5
| public function __get($key){
$method = 'get' . ucfirst($key);
$this->$key = $this->$method();
return $this->$method();
} |
Soit on ne défini pas $url pour que __get($key) s'exécute -> $url inconnu -> getUrl(), mais on a une erreur Article::url défini dynamiquement
Soit on déclare $url, mais du coup __get($key) NE s'exécute PAS puisque la variable existe
Est ce que j'ai bien compris le problème ?
Et comment résoudre cela (ou les méthodes magiques il faut oublier)