我在XML數據從API使用PHP一個SimpleXMLElement並通過元件迭代如下拉動:比較作爲不真不僞PHP值
$xml = new SimpleXMLElement (file_get_contents ($api_url));
foreach ($xml->element as $element) {
print $element->name;
}
使用這種代碼,返回12的元素名稱(哪個是對的)。
但是,當我遍歷這些元素時,我想跳過任何已完成並繼續處理不完整的元素。
從API返回的XML的格式是這樣的:
<element>
<name>Alpha</name>
<completed>true</completed>
</element>
--or--
<element>
<name>Beta</name>
<completed>false</completed>
</element>
如果我加一個「如果完成,則打破」語句的foreach循環繞過完成的元素中,它僅處理1元(應該有7個):
foreach ($xml->element as $element) {
if ($element->completed == 'true')
break;
/* continue processing incomplete elements */
}
如果我更改了代碼以繞過不完整的元素,它會正確返回5個不完整的元素名稱。
if ($element->completed == 'false')
break;
它好像其它6種元素被認爲既是「真」與「假」,因爲它們是在上述兩種情況下跳過。
我也試過其他比較,但沒有一個返回7個不完整的元素。
=== 'true' (returns 12 elements)
=== 'false' (returns 12 elements)
== true (returns 0 elements)
== false (returns 12 elements)
=== true (returns 12 elements)
=== false (returns 12 elements)
必須有一些我忽略 - 任何指導,你可以給予讚賞。
我想你想'continue'而不是'break',對不對? – smarx
如果我回應'$ element-> completed',我得到7x'false'和5x'true' –