无法将数组从php传递给js

时间:2016-08-09 15:46:32

标签: javascript php

我是这个php类:

class Language
{
    public $lang = array
    (
        'home' => 'index',
        'login' => 'access'   
    );

    function __construct()
    {
         return $this->lang;
    }
}

此类返回一个包含每个索引的语言的数组。现在,我的view实例化了这个类,在每个视图中都很简单,我可以通过属性this->lang访问它。

在我看来,我是一个js文件,在此我试图获取$lang数组,为此我已经使用了这段代码:

var Language = <?php echo json_encode($this->lang); ?>;

问题是返回Language class:

的对象
Object {lang: Object}

我正在寻找一个关联数组而不是对象,所以我可以这样做:Language['home']并取字符串而不是Language.lang.home。任何机会?感谢。

2 个答案:

答案 0 :(得分:0)

class Language
{
    public $lang = array
    (
        'home' => 'index',
        'login' => 'access'   
    );

    function getLanguage()
    {
         return $this->lang;
    }
}
$object = new Language();
$languageArray = $object->getLanguage();

现在使用$languageArray之类的

var Language = <?php echo $languageArray; ?>;

这将为您提供关联数组。

答案 1 :(得分:0)

首先你的类是错的,构造函数中不能有return语句,你应该这样做:

class Language
{
    public $lang = array
    (
        'home' => 'index',
        'login' => 'access'   
    );
}

然后在你的模板中:

$l = new Language();
echo 'var Language = ' . json_encode($l->lang);
相关问题