Frage

Lets sagen, ich habe diesen Code:

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

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

Wie bekomme ich es alle Namen von instanzierte Objekten zu Echo (und wenn möglich ihre jeweilige Klasse), so dass es echos (möglicherweise in einem Array) „hello1 => hallo, hello2 => hallo, hello4 => hallo “.

Wenn dies nicht möglich ist, gibt es eine Möglichkeit, den Namen der Instanz zu sagen, von innerhalb der Klasse, so etwas wie echo instance_name ($ this); würden Sie mich „hello1“. Danke.

War es hilfreich?

Lösung

Sie könnten get_defined_vars nennen eine Reihe von allen Objekten vorhanden ist, zu erhalten und dann get_class verwenden, um die Klassennamen für jeden zu bekommen (Code nicht getestet, aber es sollte funktionieren):

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

FYI, was Sie rufen eine „deklarierte Klasse“ als bekannteren „Objekt“.

Ihre zweite Frage ist nicht möglich. Nehmen wir zum Beispiel:

$hello1 = $hello2 = new hello();

Nun, wenn ich instance_name nennen, sollte es zurückgeben 'hello1' oder 'hello2'?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top