0

わかりました、ばかげた質問、私は推測します...

私はこれをやろうとしています:

ファイル: pt.php

<?php $langlist = array ( "Car" => "Carro", "Big Car" => "Carro grande") ?>

ファイル: index.php

<?php
$lang = 'pt';
if ($lang != 'en') include('locale/' . $lang . '.php');
function __($langstring){
    if ($lang != 'en'){
        echo $langlist[$langstring];
    } else {
        echo $langstring;
    }
}
?>

ただし、これは機能しません(注意:未定義の変数:langおよびlanglist)。

私は何が間違っているのですか?

PS:echo関数内の代わりに使用するのは正しくないことは知っていますが、この関数を使用する必要があるたびにreturn使用したくありません...echo __();

4

2 に答える 2

2

構文が間違っています:

<?php $langlist = array { "Car" => "Carro", "Big Car" => "Carro grande"} ?>

する必要があります

<?php $langlist = array("Car" => "Carro", "Big Car" => "Carro grande") ?>
于 2013-02-14T00:54:08.740 に答える
2

$langおよび$langlistはグローバル変数ですが、関数内からは見ることができません。それらにアクセスするには、関数の最初の行として以下を追加するだけです。

global $lang, $langlist;

または、宣言を使用して、または使用$GLOBALS['lang']$GLOBALS['langlist']ずにそれらにアクセスすることもできます。global

于 2013-02-14T01:01:25.207 に答える