我讀了一些代碼,看到下面的線
$obj = json_decode(json_encode($xml));
$xml
是simplexml_load_string
所以對我來說,它看起來像該行是等價的
$obj = $xml;
可能是什麼原因看似不必要的編碼和解碼?
我讀了一些代碼,看到下面的線
$obj = json_decode(json_encode($xml));
$xml
是simplexml_load_string
所以對我來說,它看起來像該行是等價的
$obj = $xml;
可能是什麼原因看似不必要的編碼和解碼?
如果$xml
是SimpleXml
對象,則無法直接訪問其某些屬性。它是用來SimpleXml
對象轉換爲古典的對象,並可以訪問其所有屬性:)
另外的一招,你可以傳遞一個布爾參數,以獲得一個數組,而不是一個對象:json_decode(json_encode($xml), true);
如果「json_decode」的第二個參數被傳遞爲true,這是一種將SimpleXMLElement轉換爲PHP數組的恰到好處的方式。就目前而言,這將它變成stdClass,這或多或少都是毫無意義的。 – iainn
實際上,爲了返回一個關聯數組而不是stdClass對象,它需要將json_decode的第二個參數設置爲true。除此之外,@iainn是對的。 –
「看起來像這條線相當於'$ obj = $ xml;'」 - 如果你只是運行代碼,你會看到是不正確的;-) –