根据数组内容选择 PHP 变量的值

YKKY

我的目标是根据数组中变量值的存在来获取语言文件,如果不是,则用英语替换。这是我从头开始编写的代码:

if(strpos($trns, $lng) === FALSE) {$trn = 'en';} else {$trn = $lng;}
include_once $trn.'.php';

其中$trns是具有现有翻译文件的语言前缀的数组,$lng是保存前缀的变量,如果它存在于数组中并且$trn是选定的前缀,则应使用该前缀。

在我看来,在人类语言中,这段代码读起来就像case $lngisfr但是fr数组中没有然后使用enfor $trn否则使用fr.

Print_r($trns)输出是Array ( [0] => en [1] => de )

所以上面的代码成功地使用了 en.php 文件,以防en数组中存在 和$lng = en,对于de.

但是,它也使用fr在尽管事实上没有fr在数组中,而应该替代fren在这种情况下。

我迫切需要您的帮助来跟踪我所犯的错误。

斯特凡诺夫

strpos不适用于数组。使用in_array功能。

if (!in_array($lng, $trns)) {
    $trn = 'en';
} else {
    $trn = $lng;
}
include_once $trn.'.php';

或更短

$trn = in_array($lng, $trns) ? $lng: 'en';
include_once $trn.'.php';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章