Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP对象json_编码在回显时提供空值?_Php_Json_Object - Fatal编程技术网

PHP对象json_编码在回显时提供空值?

PHP对象json_编码在回显时提供空值?,php,json,object,Php,Json,Object,我目前正在尝试学习JSON,现在它正把我的谚语抛在脑后 使用一个普通变量,我可以对其进行精细编码,然后通过echo查看JSON字符串 但是,我想对一个对象进行编码,但它不起作用: Class tariff { var $preset_name; var $name; var $net; var $inclusive; var $length; var $data; function __construct()

我目前正在尝试学习JSON,现在它正把我的谚语抛在脑后

使用一个普通变量,我可以对其进行精细编码,然后通过echo查看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”:null,“name”:null,“net”:null,“inclusive”:null,“length”:null,“data”:null}

我试着在这里搜索,但找不到我的答案


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

哦,你在构造器上有一些错误的用法

应该是这样的:-

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

$this->preset_name=“Orange-1gb-ECL” 哦,你在构造器上有一些错误的用法

应该是这样的:-

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

$this->preset_name=“Orange-1gb-ECL” 在阐述另一个答案时

$preset_name = "Orange-1gb-ECL"; 

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

详细说明另一个答案

$preset_name = "Orange-1gb-ECL"; 

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

这不是设置类变量的方式;-)这不是设置类变量的方式;-)但我想在以后的数组中添加更多数据,这将进入下拉菜单。我想你误解了我的意思。我刚才讨论了$preset_name(本地范围)和$this->preset_name(类实例范围)之间的区别。但是我想稍后在数组中添加更多数据,这将进入下拉菜单。我想你误解了我的意思。我刚才说的是$preset_name(本地范围)和$this->preset_name(类实例范围)之间的区别。