2010-12-05 57 views
0

下面给出了两个基本上做同样事情的PHP函数,我想知道哪些是最好用的?哪些是更好的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'); ?>

+1

您喜欢哪种? – salathe 2010-12-05 18:00:05

+0

对我来说似乎都很好,这就是我问你们的原因:D或者你们可以继续前进,并建议一个新的功能...... – 2010-12-05 18:01:41

回答

2

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

例:

GetLanguage($site) 
    returns an associative array of strings 

而且

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

在我看来,第二个功能是由所述参数多个逻辑。 在第一个函数中爆炸函数比在第二个函数中的操作要慢。

2

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