json_encode
函數(shù)在處理 PHP 中的特殊數(shù)據(jù)類型(如對(duì)象、資源等)時(shí),會(huì)嘗試將它們轉(zhuǎn)換為 JSON 格式。以下是 json_encode
對(duì)這些特殊數(shù)據(jù)類型的處理方式:
json_encode
會(huì)將對(duì)象轉(zhuǎn)換為一個(gè)包含其屬性名和屬性值的數(shù)組。如果對(duì)象沒有可序列化的屬性,那么它將返回 null
。class Person {
public $name;
private $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
$person = new Person("John", 30);
echo json_encode($person); // 輸出:{"name":"John","age":30}
json_encode
無(wú)法直接將資源轉(zhuǎn)換為 JSON 格式。如果資源類型實(shí)現(xiàn)了 __toString()
方法,json_encode
會(huì)嘗試調(diào)用這個(gè)方法并將結(jié)果轉(zhuǎn)換為字符串。如果資源無(wú)法轉(zhuǎn)換為字符串,json_encode
將返回 null
。$resource = fopen('php://memory', 'r+');
fwrite($resource, 'Hello, World!');
rewind($resource);
echo json_encode($resource); // 輸出:"Hello, World!"
fclose($resource);
json_encode
會(huì)將 NULL
值轉(zhuǎn)換為 JSON 格式的 null
。echo json_encode(NULL); // 輸出:null
json_encode
會(huì)將布爾值轉(zhuǎn)換為 JSON 格式的 true
或 false
。echo json_encode(true); // 輸出:true
echo json_encode(false); // 輸出:false
json_encode
會(huì)將數(shù)組轉(zhuǎn)換為 JSON 格式的對(duì)象或數(shù)組(取決于數(shù)組的內(nèi)容)。$array = array("name" => "John", "age" => 30);
echo json_encode($array); // 輸出:{"name":"John","age":30}
總之,json_encode
會(huì)嘗試將 PHP 中的特殊數(shù)據(jù)類型轉(zhuǎn)換為 JSON 格式。如果轉(zhuǎn)換失敗,它將返回 null
。