Domanda

Diciamo che ho questo codice:

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

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

Come ottengo che riecheggi tutti i nomi degli oggetti istanziati (e se possibile la loro rispettiva classe), in modo che echi (possibilmente in un array) " hello1 = > ciao, ciao2 = > ciao, ciao4 = > ciao ".

Se ciò non è possibile, c'è un modo per dire il nome dell'istanza all'interno della classe, qualcosa come echo nome_istanza ($ this); mi prenderebbe "ciao1". Grazie.

È stato utile?

Soluzione

Potresti chiamare get_defined_vars per ottenere un array di tutti gli oggetti presenti, quindi usare get_class per ottenere i nomi delle classi per ognuno (codice non testato, ma dovrebbe funzionare):

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

Cordiali saluti, quella che chiami una classe dichiarata " è più noto come " oggetto. "

La tua seconda domanda non è possibile. Prendi, ad esempio:

$hello1 = $hello2 = new hello();

Ora, se chiamo nome_istanza , dovrebbe restituire 'ciao1' o 'ciao2'?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top