PHP中函數的使用説明

來源:文萃谷 2.43W

先用一段代碼重現一下問題

PHP中函數的使用説明

乍一看,結果很讓人費解:

複製代碼 代碼如下:

<?php

$string = <<<EOF

hello

world

EOF;

$data = simpleXML_load_string($string);

print_r($data);

print_r($data->foo);

?>

乍一看,結果很讓人費解:

複製代碼 代碼如下:

SimpleXMLElement Object

(

[foo] => Array

(

[0] => SimpleXMLElement Object

(

[bar] => hello

)

[1] => SimpleXMLElement Object

(

[bar] => world

)

)

)

SimpleXMLElement Object

(

[bar] => hello

)

明明print_r顯示foo是一個有兩個bar元素的數組,但是最後卻僅僅顯示了一個bar元素!

原因其實很簡單,在如上所示simplexml_load_string的.結果裏,foo並不是數組,而是一個迭代對象!

可以這樣確認:

複製代碼 代碼如下:

foreach ($data->foo as $v) print_r($v);

foreach ($data->children() as $v) print_r($v);

看來,print_r或者var_dump之類的表象並不完全可信,自己多留心吧。

熱門標籤