zoukankan      html  css  js  c++  java
  • 使用SimpleXML应该注意的问题有哪些?

      SimpleXML提供了一套简单快速的XML操作方法,大大地提高了XML操作的效率。

      但是有时不小心也会带来不小的麻烦,看下面一段代码:

      $xml=simplexml_load_string('<root><title>title</title></root>');

      $title=$xml->title;

      echo$title;

      $xml->title='test';

      echo$title;

      猜猜第二个输出结果会是多少?是'test',而不是想像中的'title'。为什么会这样呢?原因在这里:

      echo gettype($xml->title)//object

      echo get_class($xml->title);//SimpleXMLElement

      看到了吗,$xml->title是一个SimpleXMLElement类的实例,而不是字符串。

      SimpleXMLElement应该是实现了一个类似于__tostring()的接口(有兴趣的可以去看一下PHP的源码,在"ext/simplexml/"中),才能在echo等表达式中表现类似于一个字符串。所以还有个地方需要注意:

      $_SESSION['test']=$xml->title;//保存一个SimpleXMLElement变量到SESSION中。

      $_SESSION['test']=(string)$xml->title;//字符串

      $_SESSION['test']=strval($xml->title);//这样也行。

      所以$title实际上保存的是一个到SimpleXMLElement类的一个引用,而不是字符串的副本。想要得到字符串的副本只能进行类型转换:

      $title=(string)$xml->title;//获得字符串

      $xml->title='test';

      echo$title;//输出title

  • 相关阅读:
    操作系统的内存对齐机制学习笔记
    函数库调用和系统调用的区别
    操作系统与c语言
    技术开发人员适应其他部门提需求的一个经验
    受益技术类书籍
    软件项目发展历史<人月神话>这本书好
    好的代码风格积累
    演示内存碎片原理的好图
    不要的代码删除掉,而不是放到系统中干扰
    编译安装php-amq扩展
  • 原文地址:https://www.cnblogs.com/cbryge/p/6033522.html
Copyright © 2011-2022 走看看