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 回答