加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 将数组提取到全局变量中

发布时间:2020-12-13 22:07:05 所属栏目:PHP教程 来源:网络整理
导读:The manual on “extract”显示您可以提取如下数组: extract(array('one'=1,'two'=2)); 分成1美元,2美元…… 但是提取函数不返回变量.有没有办法将这些变量“全球化”?也许不是使用提取,而是使用foreach循环? 编辑:(解释我正在努力实现的目标) 我有一个包
The manual on “extract”显示您可以提取如下数组:

extract(array('one'=>1,'two'=>2));

分成1美元,2美元……

但是提取函数不返回变量.有没有办法将这些变量“全球化”?也许不是使用提取,而是使用foreach循环?

编辑:(解释我正在努力实现的目标)
我有一个包含数百个输出消息的数组,我希望它们可以作为变量有效地访问.我的意思是每当我想输出一条消息时,请说:

$englishMessages = array('helloWorld'=>'Hello World');
$spanishMessages = array('helloWorld'=>'Hola Mundo');
'<span id="some">'. $helloWorld .'</span>';

该消息将出现.我这样做的原因是用户可以更改他们正在查看网站的语言,所以类似于:
????”. $helloWorld.”;
会产生:

Hola Mundo!

解决方法

不完全是你的问题的答案……但是:保持数组,不要污染(全局)变量名称空间.

$englishMessages = array('helloWorld'=>'Hello World');
$spanishMessages = array('helloWorld'=>'Hola Mundo');

// wrap this in a nice function/method
$lang = $englishMessages;
// then use $lang for the output
'<span id="some">'. $lang['helloWorld'] .'</span>';

同一主题的一些变化:

function getMessages($language) {
  static $l = array(
    'en'=> array('helloWorld'=>'Hello World'),'es' => array('helloWorld'=>'Hola Mundo')
  );
  // <-- add handling reporting here -->
  return $l[$language];
}

$lang = getMessages('en');
echo '<span id="some">'. $lang['helloWorld'] .'</span>';

要么

function __($language,$id) {
  static $l = array(
    'en'=> array('helloWorld'=>'Hello World'),'es' => array('helloWorld'=>'Hola Mundo')
  );
  // <-- add error handling here -->
  return $l[$language][$id];
}

echo '<span id="some">'. __('es','helloWorld') .'</span>';

您可能也对http://docs.php.net/gettext感兴趣

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读