数组和类

时间:2015-05-13 19:49:24

标签: php arrays

我有以下问题。

我有en-EN.php文件 - 我保留所有功能翻译的方式如下:

<?php     
    $lang = array(
        'Index' => 'Index'
    );
?>

我将此文件包含在页面标题中,以便我可以访问它,如下所示:$lang['Index']

问题如下。 当我创建另一个文件,例如User.class.php并尝试在其中包含此翻译数组时,我不允许使用它。

我的User.class.php文件例如:

 <?php
    class User {
        function showIndex() {
            echo $lang['Index'];        
        }
    }

然而,这样它不允许我显示实际的单词。可能是什么问题?

我在标题中包含:

include '/lang/en-EN.php';
include '/theme/classes/User.class.php';

$user = new User();

$user->showIndex();

我需要以某种方式传递$ lang数组,但我不知道如何......

2 个答案:

答案 0 :(得分:1)

在函数或方法的范围内无法访问您的$lang变量。您必须使用global导入它。

function showIndex() {
    global $lang;
    echo $lang['Index'];        
}

答案 1 :(得分:0)

该类的类和方法具有不同的变量范围,因此它们无法看到&#34; $ lang&#34;变量。你可以这样做:

include "en-EN.php";
include "~/User.classs.php";
$user = new User($lang);
$user->showIndex();

课程应如下所示:

class User {
    protected $lang;
    public function __construct($lang) {
        $this->lang = $lang;
    }
    public function test() {
        echo $this->lang['Index'];
    }
} 

一般来说,最好先看看gettext