好的,愚蠢的问题,我猜......
我正在尝试这样做:
文件: 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 __();
我需要使用这个功能......
答案 0 :(得分:2)
您的语法错误:
<?php $langlist = array { "Car" => "Carro", "Big Car" => "Carro grande"} ?>
应该是
<?php $langlist = array("Car" => "Carro", "Big Car" => "Carro grande") ?>
答案 1 :(得分:2)
$lang
和$langlist
是全局变量,但在函数中无法看到它们。只需添加以下内容作为函数的第一行即可访问它们:
global $lang, $langlist;
或者,您可以在不使用$GLOBALS['lang']
声明的情况下以$GLOBALS['langlist']
和global
的身份访问它们。