从函数中的包含文件返回数组值

时间:2013-02-14 00:52:43

标签: php arrays function if-statement include

好的,愚蠢的问题,我猜......

我正在尝试这样做:

文件: 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 __();我需要使用这个功能......

2 个答案:

答案 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的身份访问它们。