PHP mostra i nomi di tutte le classi dichiarate?
-
03-07-2019 - |
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.
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'?