如何得到PHP文件中所有变量名?
比如我们有一个配置文件是这样书写的:
$CONF['host'] = 'localhost';
$DOMAIN['domain'][] = 'www.qihoo.com';
$DOMAIN['domain'][] = 'www.360.cn';
.......................
我们把这个配置文件中的变量名想一个一个引入(为什么要一个个引入,而不是直接包含一个文件?因为项目中可能有其他的配置文件,如果直接引入文件可能名称会重复,可能你会说为什么不用 namespace
,因为 php5.3
才有 namespace
,程序要兼容老环境)。
php提供给我们一个好的方法:
get_defined_vars();
这个函数能得到函数前面所有定义的变量,返回一个数组,但是我们只需要配置文件里面的变量,可以利用
函数或方法内变量的生存空间来解决,如:
public static function getConfigVars () {
include (dirname(__FILE__) . '/../client_conf.php');
return get_defined_vars();
}
这样得到的就是配置文件中所有的变量数组,当然在方法内请不要定义其他变量了。