PHP如何获取所有已定义变量的列表?

时间:2012-10-20 04:16:45

标签: php

如何获取已定义变量及其值的列表。例如define('DS', DIRECTORY_SEPARATOR);

如何在页面末尾列出所有这些内容,以检查所有这些内容是否按预期工作。而不是一个接一个地打印所有这些。

我已经尝试get_defined_vars()但是我得到了如下所示的所有超级全局变量。

Array
(
    [GLOBALS] => Array
        (
            [GLOBALS] => Array
 *RECURSION*
            [_POST] => Array
                (
                )

            [_GET] => Array
                (
                )

            [_COOKIE] => Array
                (
                    [PHPSESSID] => tkv7odk47idt4r2ob7389tkr81
                    [CAKEPHP] => cep9tbooimh5kbhn8jovmaqgi1
                )

            [_FILES] => Array
                (
                )

            [_SERVER] => Array

但我只想使用define()语句提到的那些。

有没有办法获得它。

4 个答案:

答案 0 :(得分:2)

您可以使用 get_defined_constants

来解决此问题
$constarray = get_defined_constants(true);
foreach($constarray['user'] as $key => $val)
    eval(sprintf('$_CONSTANTS[\'%s\'] = \'%s\';', addslashes($key), addslashes($val)));

答案 1 :(得分:2)

要在php脚本中检索所有已定义的常量,可以使用函数get_defined_constants()

它将返回php脚本

中定义的所有常量的关联数组

有关get_defined_constants的更多文档,请参阅以下网址 http://php.net/manual/en/function.get-defined-constants.php

答案 2 :(得分:1)

使用get_defined_constants();,参考http://php.net/manual/en/function.get-defined-constants.php

答案 3 :(得分:0)

我使用此代码来获取所有定义。你可以包含php文件并使用此代码

              include("FILE.PHP");  

              GET_ALL_define();

            function GET_ALL_define(){

                    $getdefinedconstants = get_defined_constants(true);
                    $definedvars = $getdefinedconstants['user'];

                    foreach($definedvars as $key => $value){
                        echo $key ." = ". $value . "<br>";
                    }

            } 

或不包含像此代码一样的php文件。

          define("_A","A1");
          define("_B","B2");   
          define("_C","C3");

              GET_ALL_define();

            function GET_ALL_define(){

                    $getdefinedconstants = get_defined_constants(true);
                    $definedvars = $getdefinedconstants['user'];

                    foreach($definedvars as $key => $value){
                        echo $key ." = ". $value . "<br>";
                    }

            }