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

标签 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;
?>

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

如果这不可能,有没有办法从类中告诉实例的名称,比如 echo instance_name($this);会让我“hello1”。谢谢。

最佳答案

您可以调用 get_defined_vars 获取所有存在对象的数组,然后使用 get_class 获取每个对象的类名(代码未测试,但它应该工作):

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

仅供引用,您所说的“已声明的类”更广为人知的是“对象”。

你的第二个问题不可能。举个例子:

$hello1 = $hello2 = new hello();

现在,如果我调用 instance_name,它应该返回“hello1”还是“hello2”?

关于PHP 显示所有已声明类的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/822223/

相关文章:

php - 用于开发 PHP 扩展的调试器

php - 将 html 网站转换为简单的 PHP 模板网站

php - 正则表达式在它们之间有空格时加入数字

java - `jar` 是否有一个标志来设置要创建的 .jar 文件的默认类?

php - 在 Laravel 中使用 MySQL 枚举的菜单下拉

java - 我应该如何将对象添加到私有(private)静态ArrayList?

javascript - 将 dojo.declare 更改为 "native Javascript class decleration"

ruby - attr_reader、attr_accessor 功能未按预期工作

objective-c - C 函数和对 Objective-C 实例变量的访问

原型(prototype)中具有数字属性的 Javascript 对象