假設我希望Place有一個電話號碼列表。 有些地方會有1個電話號碼,有些會有多個電話號碼。其他人根本就沒有。強制SimpleXML節點始終是一個數組,即使其中只有一個元素
的問題是這樣的:
$xml->addChild('phone_number','555.555.5555');
創建一個非可迭代PHONE_NUMBER文本節點:
$response->xml->phone_number;
但這:
$xml->addChild('phone_number','555.555.5555');
$xml->addChild('phone_number','555.555.5556');
創建PHONE_NUMBER的一個可迭代數組:
$response->xml->phone_number[0];
$response->xml->phone_number[1];
這給客戶端帶來了不必要的負擔。他們必須檢測結果是否可迭代,並相應地修改其代碼。
如果我總是可以發回一個可重構的數組,即使其中有0個或1個項目,但是我一直無法找到關於如何執行此操作的任何文檔,那將會更好。在Perl中,我相信它被稱爲「forcearray」,但我還沒有找到PHP的等價物,這是我需要的。
我已經這樣做了,但我有同樣的問題。你會認爲結果是:$ response-> xml-> phone_numbers-> phone_number [0];但是當只有一個電話號碼時,結果實際上是:$ response-> xml-> phone_numbers-> phone_number; –
方法xpath或孩子將允許返回一個數組 – ajreal
@lo_fye - 對不起,可能不是您想要的答案,爲了使其成爲可循環的,預計會發生代碼更改 – ajreal