哪些是更好的PHP功能?

时间:2010-12-05 17:58:20

标签: php arrays function

下面给出了两个基本上做同样事情的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'); ?>

3 个答案:

答案 0 :(得分:3)

在我看来,第二个函数更符合逻辑。 并且第一个中的爆炸函数比第二个中的数组操作慢。

答案 1 :(得分:2)

我更喜欢功能2:有两个参数更为明显。

答案 2 :(得分:2)

第二,但我宁愿把它分成两种方法。

例如:

GetLanguage($site)
   returns an associative array of strings

GetLanguageKeyValue($site, $key)
    returns value as string