如var_dump输出一个SimpleXMLElement对象,显示如下object(SimpleXMLElement)#4 (3) {
  ["@attributes"]=>
  array(1) {
    ["index"]=>
    string(1) "1"
  }
  ["name"]=>
  string(7) "书本1"
  ["story"]=>
  array(3) {
    [0]=>
    object(SimpleXMLElement)#5 (2) {
      ["title"]=>
      string(14) "书本1故事1"
      ["quote"]=>
      string(20) "书本1故事1内容"
    }
    [1]=>
    object(SimpleXMLElement)#6 (2) {
      ["title"]=>
      string(14) "书本1故事2"
      ["quote"]=>
      string(20) "书本1故事2内容"
    }
  }
}那个还@的["@attributes"]代表什么意思,请举一个类似的class,谢谢

解决方案 »

  1.   

    XML 的每个节点都可以有值和属性
    SimpleXML 为了让你能区分他们,将节点的属性放在名为 @attributes 的数组中
      

  2.   


    我知道这是一个xml节点的属性,现在我不懂的是怎么还原这个class,我们可以抛开xml直接讨论类与对象:
    1、我们平时访问一个对象的属性一般是:对象->属性名,但是现在我怎么去访问这个 @attributes 的属性,用这个 对象->@attributes,根本访问不了
    2、如果这个真的是一个类中的属性,那怎么能在类中用带@开头的变量名声明一个属性?那根本是语法错误最好能写一个类,实例化对象后,var_dump打印这个对象能打印出如我上面给的一样属性能带@, 因为我实在写不出这样的类
      

  3.   

    本帖最后由 xuzuning 于 2012-10-24 15:01:12 编辑
      

  4.   


    别再拿SimpleXMLElement说事了,我只想知道一个类怎么写,实例化对象后用var_dump打印,显示的是带@的属性
      

  5.   

    是你用 SimpleXMLElement 说事,而不是我$a = array( '@abc' => 2);
    settype($a, 'object');
    echo $a->{'@abc'};