问个PHP问题
请问一个问题:为什么一个变量可以看起来又是对象又是数组?
echo $foo->bar;
echo $foo["name"];
比如在SimpleXMLElement 类解析返回结果的时候,其结果就是这样的。bar是他的一个子节点,name是他的属性。
我好像没见过这样的变量,自己也弄不出来?
求点拨 这就是一个stdclass或者一个普通类中的成员变量,与数组间的相互转化了.
http://www.tinoweb.cn/2010/02/16/php-stdclass/ 回复 2# saturn
这是转化啊 我指的是一个变量既可以通过数组的方式访问 同时也可以使用对象的方式访问 .
是不是通过__get实现的?
怎么打印出这个对象的方法?
比如:
--------------------------------
<?php
$string = <<<XML
<?xml version='1.0'?>
<document responsecode="200">
<result count="10" start="0" totalhits="133047950">
<title>Test</title>
<from>Jon</from>
<to>Tsung</to>
</result>
</document>
XML;
$xml = simplexml_load_string($string);
echo '<pre>';
print_r($xml);
echo '</pre>';
echo $xml['responsecode'];
echo '<br/>';
echo $xml->result->title;
?>
----------------------------
SimpleXMLElement Object
(
[@attributes] => Array
(
=> 200
)
=> SimpleXMLElement Object
(
[@attributes] => Array
(
=> 10
=> 0
=> 133047950
)
=> Test
=> Jon
=> Tsung
)
)
200
Test 基础的东西多看php手册$methodsArray=get_class_methods('SimpleXMLElement');
问个PHP问题
我的意思是如果你研究过我上面说的 你就应该知道get_object_vars还有vivory说说的此类函数。- 发送自我的 iPhone 大板凳应用 回复 4# visvoy
谢谢 回复 5# saturn
我没来得及研究呢 我用get_object_vars 和 get_class_methods 看了$xml这个对象,但是里面没有什么特殊的,也没有get方法啊.
我现在想知道的是 $xml是什么类型 为什么可以有两种访问方法 以及 如何自己造一个这样的变量??
页:
[1]