2010-12-05 12 views
0

基本的に同じことをする2つの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

+0

どちらも私にはうまく見えますが、あなたに尋ねる理由はそうです:Dまたはあなたたちは先に進み、新しい機能を提案することができます... –

+1

それから、(決めることができない場合はランダムに) – salathe

答えて

2

2番目の方法ですが、2つの方法に分割します。

例:

GetLanguage($site) 
    returns an associative array of strings 

そして

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

は、第二の機能は、引数によって、より論理的です。 そして、最初の関数の展開関数は、2番目の配列の演算よりも遅いです。

2

私は機能2を好む:2つのパラメータがあることは明らかです。

+0

本当です。いいえ1は私に["stringly typed"]という言葉を思い出させます(http://stackoverflow.com/questions/2349378/new-programming-jargon-you-coined/2444303#2444303)... – delnan

関連する問題