2011-12-15 2 views
0

В настоящее время я пытаюсь научиться JSON, и в данный момент он пьет мою пресловутую позицию.PHP-объект json_encode дает значения NULL при эхом?

С нормальной переменной я смог закодировать ее отлично, а затем эхо, чтобы увидеть строку 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, "включительно": null, "length": null, "data": null}

Ive попробовал поиск по Google и поиск здесь, но не может найти мой ответ!

Помогите мне Оби Ван, ваша единственная надежда!

+0

Это не так, как вы задали переменные класса ;-) – Flukey

ответ

2

О, у вас есть какие-то неправильные использований в конструкторе,

Должно быть так: -

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

Вместо

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

ahh, ошибка школьного мальчика! – kaleeway

2

развернутую другой ответ,

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

в функции-члене фактически инициализирует локальную переменную для области действия этой функции. $ это ключевое слово - это ссылка на ваш текущий экземпляр текущего класса с целью доступа к конструкциям, таким как свойства в области экземпляра класса.

+0

, но я хочу добавить больше данных позже в массив, это произойдет в выпадающем меню – kaleeway

+0

Я думаю, вы неправильно поняли то, что я говорил. Я просто говорил о разнице между $ preset_name (локальная область) и $ this-> preset_name (область экземпляра класса). –

Смежные вопросы