【问题标题】:How do I see **all** the currently defined variables in PHP?如何查看 **all** PHP 中当前定义的变量?
【发布时间】:2010-05-12 20:36:54
【问题描述】:

我需要一种方法来查看当前 PHP 实例的所有已定义变量。
当前定义的意思是所有全局变量,所有本地变量,所有本地变量,以及所有本地变量。
有内置的东西吗?

【问题讨论】:

    标签: php debugging utilities


    【解决方案1】:

    对于当前范围内的所有内容:

    print_r(get_defined_vars());
    

    我认为没有解决方案可以从所有范围内转储所有变量,因为您必须实际运行这些函数/方法才能获得所有可用变量的完整且完整的映射(变量可以被创建、添加和在运行时删除)。

    您可能需要研究单元测试或代码覆盖工具,看看您是否可以使用这些领域的任何东西,但这将是很多工作。

    你需要这个做什么?

    【讨论】:

    • 我正在处理一个巨大的项目(我的意思是,真的,数十万行代码)。有时我需要看到正在发生的事情的“更大”图景。
    • @Itay 我明白了。你继承了这个项目吗?代码是否记录在案?这种概述最好通过 phpdoc 可以理解的内联文档来实现。
    • @pekka - 你的所有假设都是正确的,除了关于文档的假设:-DDD(即没有文档,没有足够有意义的符号名称等)
    • @Itay 我明白了,那个项目! :D
    • @Walter White - 你知道 PHP 中的 100 行数千行转换为 Java 中的数百万行 ;-)
    【解决方案2】:

    var_dump($GLOBALS);

    如果在此语句运行时未定义变量,则不可能将其视为具有值。 “其他”作用域中的变量不存在。

    {
        $a = new myClass();
        do stuff
        $a->destroy();
    }
    print "$a has no meaning in this context";
    

    【讨论】:

    • 你是什么意思“不存在”他们仍然需要记忆,对吧?
    • 我想我明白了,想想函数调用里面的函数调用,我必须在最里面的函数里面知道它。
    • 啊啊啊……这里讨论stackoverflow.com/questions/3418413/…无济于事
    猜你喜欢
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多