【问题标题】:Return an array value from included file in a function从函数中包含的文件中返回数组值
【发布时间】:2013-02-14 00:52:42
【问题描述】:

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

我正在尝试这样做:

文件: 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)。

我做错了什么?

P.S.:我知道在函数中使用 echo 而不是 return 是不正确的,但我不想每次我需要使用它时都使用 echo __();函数...

【问题讨论】:

    标签: php arrays function if-statement include


    【解决方案1】:

    $lang$langlist 是全局变量,但在函数内部是看不到的。只需在函数的第一行添加以下内容即可访问它们:

    global $lang, $langlist;
    

    或者,您可以使用$GLOBALS['lang']$GLOBALS['langlist'] 访问它们,而无需使用global 声明。

    【讨论】:

    • 它并没有完全解决问题。在我第 12 次使用 __() 函数后,它会显示“注意:未定义索引:数组键”。
    • 我的错!我忘了我用了两次$langlist
    【解决方案2】:

    你的语法错误:

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

    应该是

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

    【讨论】:

    • 糟糕!我的错!此错误仅在此问题中。该代码已经具有正确的语法。我想这不是问题的根源...... ;) (有问题的更正语法。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 2018-12-05
    • 2012-02-07
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多