下面给出了两个基本上做同样事情的PHP函数,我想知道的是哪一个最好用?
$ lang是一个存储其他值的数组
$lang = array(
'default' => 'This is the default text',
'site' => array(
'name' => 'Website',
'url' => 'website.com',
),
'logo' => 'images/logo',
);
请注意,我将在整个应用程序中使用其中一个功能来显示文本,因为我正在构建支持多种语言的应用程序。
功能1:
function lang($text='default') {
global $lang;
$text = explode(',',$text);
if(!empty($text[1])) {
$newtext = $lang[$text[0]][$text[1]];
}
else {
$newtext = $lang[$text[0]];
}
echo $newtext;
}
用法:<?php lang('default'); ?> or <?php lang('site,name'); ?>
功能2:
function lang($text='default', $text2='') {
global $lang;
if(!empty($text2)) {
$newtext = $lang[$text][$text2];
}
else {
$newtext = $lang[$text];
}
echo $newtext;
}
用法:<?php lang('default'); ?> or <?php lang('site','name'); ?>
答案 0 :(得分:3)
在我看来,第二个函数更符合逻辑。 并且第一个中的爆炸函数比第二个中的数组操作慢。
答案 1 :(得分:2)
我更喜欢功能2:有两个参数更为明显。
答案 2 :(得分:2)
第二,但我宁愿把它分成两种方法。
例如:
GetLanguage($site)
returns an associative array of strings
和
GetLanguageKeyValue($site, $key)
returns value as string