PHP:SimpleXMLElement() 类和 SimpleXML_load_string() 有什么区别?

2022-08-30 19:14:48

我见过很多程序员实现而不是类。使用前者比后者有什么好处吗?我已经阅读了单纯形ml上的PHP手册。我无法掌握它是什么。SimpleXML_load_string()SimpleXMLElement()

任何帮助和指导(也许通过示例)将不胜感激。提前致谢。


答案 1

simplexml_load_string()(顾名思义)从字符串加载 xml 并返回 的对象 。这与仅使用类的常用构造函数之间没有区别。SimepleXMLElement

更新:

SimpleXML::__construct()有一个附加参数(第三个)。如果这是行为,则行为与(与公共流包装器结合使用)相同。因此,这两个函数都涵盖与 相同的功能。bool $data_is_url = falsetruesimplexml_load_file()simplexml_load_*()SimpleXML::__construct()

此外,这些函数还有第二个参数来指定要返回的对象的类。这不是函数的特定功能,因为您也可以“使用”与通常的实例非常相似的东西。simplexml_load_*()string $class_name = "SimpleXMLElement"

class MyXML extends SimpleXMLElement {}
$a = new MyXML($xml);
$b = simplexml_load_string($xml, 'MyXML');

OOP- 和过程方法之间的区别在于,函数在出错时返回,但构造函数会引发异常。false


答案 2

它主要是一个便利包装器。通过自己构造基元素,您至少需要两行代码才能完成任何操作。使用 simplexml_load_string() 一个表达式可能就足够了:

 print simplexml_load_string($xml)->title;

短于:

 $e = new SimpleXMLElement($xml);
 print $e->title;

当然,函数签名也略有不同。

更新:并且长度与

print(new SimpleXMLElement($xml))->title;

推荐