Question

Disons que j'ai ce code:

<?php
class hello {
    var $greeting = "hello";
    function hello(){
        echo $this->greeting;
        return;
    }
}

$hello1 = new hello;
$hello2 = new hello;
$hello4 = new hello;
?>

Comment puis-je lui faire renvoyer tous les noms d’objets instanciés (et si possible leur classe respective), de sorte qu’il fasse écho (éventuellement dans un tableau) " hello1 = > bonjour, bonjour2 = > bonjour, bonjour4 = > bonjour ".

Si cela n’est pas possible, existe-t-il un moyen de dire le nom de l’instance à partir de la classe, quelque chose comme echo nom_instance ($ this); me chercherait "bonjour1". Merci.

Était-ce utile?

La solution

Vous pouvez appeler get_defined_vars pour obtenir un tableau de tous les objets présents, puis utiliser get_class pour obtenir les noms de classe de chacun (code non testé, mais devrait fonctionner):

$vars = array();
foreach (get_defined_vars() as $var) {
    $vars[$var] = get_class($var);
}

Pour votre information, ce que vous appelez une "classe déclarée". est plus connu en tant qu '"objet".

Votre deuxième question n'est pas possible. Prenons, par exemple:

$hello1 = $hello2 = new hello();

Maintenant, si j'appelle nom_instance , doit-il renvoyer 'hello1' ou 'hello2'?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top