這篇文章主要介紹了關於物件轉換成JSON字串,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
#定義一個Student類別:
1 class Student { 2 public $name; 3 public $age; 4 function __construct($name, $age) { 5 $this->name = $name; 6 $this->age = $age; 7 } 8 }
此時new一個物件並直接echo: 1 $person1 = new Student('jack', 20); 2 echo $person1;
結果並沒有按照我們預想的那樣打印出該物件而是報了一個致命錯誤:
意為Student類別實例化出來的物件不能轉換成字串,此處可以得到一個資訊即:echo後面必須是字串,
否則會將其自動轉換為字串,那麼如何講一個物件轉換為字串呢?
先介紹一個魔術方法:__tostring(),這個方法用於一個類別被當成字串時應怎樣回應。例如 echo $obj;
應該要顯示些什麼。此方法必須傳回字串,否則會發出一個 E_RECOVERABLE_ERROR
等級的致命錯誤。
將這個魔術方法加入Student類別:
1 class Student { 2 public $name; 3 public $age; 4 function __construct($name, $age) { 5 $this->name = $name; 6 $this->age = $age; 7 } 8 function __tostring() { 9 return json_encode($this, JSON_FORCE_OBJECT); 10 } 11 }
json_encode(value, options)方法可以將一個物件轉換為JSON字符串,此方法接受兩個參數,
第一個參數:value
待編碼的value ,除了resource 類型之外,可以為任何資料類型
該函數只能接受UTF- 8 編碼的資料
第二個參數:options
由以下常數組成的二進位遮罩: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUSON_CHECK, JSONcoSON_CHECK, JSON O_APOS _UNICODE.
傳回值:編碼成功則傳回以JSON 形式表示的string 或失敗時傳回FALSE 。
note:與json_encode方法相對的有json_decode方法,此方法可以將一個JSON格式的字串轉換為PHP變量,此方法接受兩個參數
# 第一個參數:json字串
第二個參數:true/false,為true時表示將字串準換位數組,為false時則表示轉換為對象,預設為false
傳回值:物件或陣列(第二個參數為為true時)
#此時在瀏覽器開啟可以看到轉換成功:
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
#以上是物件轉換成JSON字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!