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.

4 réponses


Balsakup
Réponse acceptée

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 '->'

Devdeb22
Auteur

Un grand merci

Tu as également la possibilité d'utiliser la fonction php call_user_function, si ça te paraît plus lisible...