Какая из них является лучшей функцией php? - PullRequest
0 голосов
/ 05 декабря 2010

Ниже приведены две функции 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 ]

3 голосов
/ 05 декабря 2010

На мой взгляд, вторая функция более логична по аргументам. И функция разнесения в первой медленнее, чем операции с массивами во второй.

2 голосов
/ 05 декабря 2010

Второй, но я бы лучше разделил его на два метода.

Пример:

GetLanguage($site)
   returns an associative array of strings

И

GetLanguageKeyValue($site, $key)
    returns value as string
2 голосов
/ 05 декабря 2010

Я предпочитаю функцию 2: гораздо более очевидно, что есть два параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...