PHP中函式的使用說明

才智咖 人氣:1.58W

先用一段程式碼重現一下問題

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之類的表象並不完全可信,自己多留心吧。

TAGS:PHP 函式