Tüm bildirilen sınıfların PHP gösterisi adları?

1 Cevap php

Bu kod var diyelim:

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

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

Böylece yankılanırken (muhtemelen bir dizi) "hello1 => merhaba, hello2 => merhaba, hello4 => merhaba" Nasıl, (ve kendi sınıf mümkünse eğer) örneklenmiş tüm nesnelerin isimlerini yankı olsun.

Bu mümkün değilse, sınıf içinde, yankı instance_name gibi bir şey ($ this) den örneğinin adını söylemek için herhangi bir yolu yoktur; Bana "hello1" olacaktı. Teşekkürler.

1 Cevap

Sen get_defined_vars mevcut tüm nesnelerin bir dizisini almak için çağrı, ve sonra get_class her biri için sınıf adlarını almak için kullanabilirsiniz (kod test değil, ama çalışması gerekir) olabilir:

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

Bilginize, ne bir "ilan sınıf" dediğimiz daha iyi bir olarak bilinen "nesne".

Sizin ikinci bir soru mümkün değildir. Örneğin, atın:

$hello1 = $hello2 = new hello();

I instance_name çağrı Şimdi, eğer, o hello1 'veya' hello2 'dönmesi gerekir?