作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 php 文件,其中保存了所有语言字符串。这是内容:
function lang($phrase)
{
static $lang = array(
'step_one' => 'First step',
'step_two' => 'Second step',
... and so on ...
);
return $lang[$phrase];
}
本质上,当我加载一个 javascript 文件时,我想将所有数组索引存储在一个变量中,如下所示:
var Lang = <?php echo json_encode(lang()); ?>;
此代码行插入脚本中,此脚本在 php 文件中可用。在执行这一行之前,我已经导入了所有字符串翻译都可用的 php 文件。我想要实现的是在变量 Lang
中获取此数组的所有索引。实际上我可以像这样从 php 加载单个字符串转换:
lang('step_one');
但是如何将这个数组保存在 javascript 变量中呢?
最佳答案
您可以使用 array_keys
检索所有数组键。为此,您需要您的函数根据请求返回整个数组。您可以通过将参数 ($phrase
) 留空并使用 empty
执行 if 条件来做到这一点。在您的 lang
函数中。您还需要在函数中为 $phrase
设置默认值,以便在您不向函数传递参数时不会引发任何错误。
echo json_encode(array_keys(lang());
还有函数:
function lang($phrase = "")
{
static $lang = array(
'step_one' => 'First step',
'step_two' => 'Second step',
... and so on ...
);
if(empty($phrase)) {
return $lang;
} else {
if(isset($lang[$phrase])) { //isset to make sure the requested string exists in the array, if it doesn't - return empty string (you can return anything else if you want
return $lang[$phrase];
} else {
return '';
}
}
}
我还添加了 isset
确保请求的元素存在于您的语言数组中。这将防止发出警告。
关于javascript - 如何从 javascript 获取所有 php 数组索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041544/
我是一名优秀的程序员,十分优秀!