PHP对象json_encode在回显时给出NULL值?

时间:2011-12-15 16:56:33

标签: php json object

我目前正在尝试学习JSON,目前它正在扼杀我的谚语。

使用普通变量,我能够很好地编码,然后回显以查看JSON字符串。

但是我想编码一个对象,但它不起作用:

Class tariff
{

    var $preset_name;
    var $name;
    var $net;
    var $inclusive;
    var $length;
    var $data;


        function __construct()
        {
            $preset_name = "Orange-1gb-ECL";
            $name = array ("1312" => "Orange 1gb Eclipse");
            $net = array ("12312" => "Orange");
            $inclusive = array ("1312" => "1GB");
            $length = array ("12312" => "12 Months");
            $data = array ("12312" => "12p per mb");    
        }




}
        $tariff = new tariff();
        $tariff = json_encode($tariff);

    echo $tariff;
    return 0;

我的输出是:

  

{ “preset_name”:空, “姓名”:空, “净”:空, “包容”:空, “长度”:空, “数据”:空}

我曾尝试谷歌搜索并在这里搜索但找不到我的答案!

帮助我欧比万,你唯一的希望!

2 个答案:

答案 0 :(得分:2)

哦,你在构造函数中有一些错误的用法,

应该是这样的: -

$this->preset_name = "Orange-1gb-ECL"; <-- assign to object property

而不是

$preset_name = "Orange-1gb-ECL"; <-- assign local variable

答案 1 :(得分:2)

阐述另一个答案,

$preset_name = "Orange-1gb-ECL"; 
成员函数中的

实际上是将局部变量初始化为该函数的范围。 $ this 关键字是对当前类的当前实例的引用,用于访问类 - 实例范围中的属性等构造。