PHP是否显示所有已声明类的名称?

PHP是否显示所有已声明类的名称?,php,class,instance-variables,Php,Class,Instance Variables,假设我有以下代码: <?php class hello { var $greeting = "hello"; function hello(){ echo $this->greeting; return; } } $hello1 = new hello; $hello2 = new hello; $hello4 = new hello; ?> 如何让它回显实例化对象的所有名称(如果可能,还有它们各自的类),以便它回

假设我有以下代码:

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

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

如何让它回显实例化对象的所有名称(如果可能,还有它们各自的类),以便它回显(可能在数组中)“hello1=>hello,hello2=>hello,hello4=>hello”


如果这是不可能的,是否有任何方法可以从类中告诉实例的名称,比如echo instance_name($this);会让我“你好”。谢谢。

您可以调用
get\u defined\u vars
获取所有对象的数组,然后使用
get\u class
获取每个对象的类名(代码未测试,但应该可以使用):

仅供参考,您称之为“声明类”的更为人所知的是“对象”

你的第二个问题是不可能的。例如:

$hello1 = $hello2 = new hello();

现在,如果我调用
instance\u name
,它应该返回'hello1'还是'hello2'。。如果有必要,可以结合is_object查找哪些变量是objectsOk,谢谢,我正在查看get_defined_vars(),但我不知道对象也在其中,我会再次感谢,谢谢。我不想编辑标题,但有点误导。只有一个类被声明,类hello。您正在查找这个(或任何其他)类的实例以及引用这些实例的变量。
$hello1 = $hello2 = new hello();