【发布时间】:2011-01-14 02:43:51
【问题描述】:
The manual on "extract" 表明您可以提取如下数组:
extract(array('one'=>1,'two'=>2));
进入$一个,$两个...
但是提取函数不返回变量。有没有办法“全球化”这些变量?也许不使用提取,而是使用 foreach 循环?
编辑:(解释我想要达到的目标) 我有一个包含数百条输出消息的数组,我希望它们可以作为变量有效地访问。我的意思是每当我想输出一条消息时,说:
$englishMessages = array('helloWorld'=>'Hello World');
$spanishMessages = array('helloWorld'=>'Hola Mundo');
'<span id="some">'. $helloWorld .'</span>';
消息将出现。我这样做的原因是用户可以更改他们查看网站的语言,例如: ''。 $helloWorld .''; 会产生:
Hola Mundo!
【问题讨论】:
-
全局变量和 extract() 是 PHP 中我最不喜欢的两个部分……所以,这个问题让我有点想吐。能否以其他方式解决您的应用程序问题?
-
@ojrac:当然,我编辑了更详细的解释。
-
我对语法生疏了,但这里有一个想法:$language = get_lang('en'),然后是 "${language['helloWorld']} "
-
@ojrac,我一开始没有使用它的原因是因为我想使用变量,而不是数组。
-
嘿,extract 是完美的,请参阅@code_burgar 答案。另一种“PHP 方式”是
list($a,$b,...)=$array(!)。我不明白你为什么需要更多...
标签: php arrays variables extract global