如何使所有以该表达式开头的所有变量

时间:2019-06-13 04:29:52

标签: php global-variables

我有一个函数,想将所有以$ lang_开头的全局变量声明为全局变量,因为到目前为止,我有这样的东西:

function {
 global $lang_welcome;
 global $lang_hello;
 global $lang_footer;
 ...

}

但是我可以处理许多这样的变量,因此一一声明是不可能的。有任何解决方法吗?

1 个答案:

答案 0 :(得分:0)

我不确定您要达到什么目的,但是如果所有变量都在函数外部声明,并且希望在内部访问它们,则可以执行以下操作:

function func(&$vars) {

    foreach ($vars as $name => $var) {
        if (strpos($name, 'lang') === 0) {
            global ${$name};
        }
    }

    echo $lang_a;
    echo $lang_b;
}

$lang_a = 'lang_a';
$lang_b = 'lang_b';

$vars = get_defined_vars();

func($vars);

这是肮脏的方式,但我相信它可以为您提供目标。