我见过很多编码员实现SimpleXML_load_string()
而不是SimpleXMLElement()
类。使用前者对后者有什么好处?我看过PHP manual on simplexml。我无法理解它是什么。
非常感谢任何帮助和指导(可能通过示例)。提前谢谢。
答案 0 :(得分:19)
simplexml_load_string()
(顾名思义)从字符串加载xml并返回SimepleXMLElement
的对象。这与使用类的通常构造函数没有区别。
更新
SimpleXML::__construct()
有一个额外的参数(第三个)bool $data_is_url = false
。如果这是true
,则行为与simplexml_load_file()
相同(与公共流包装器一起)。因此,simplexml_load_*()
- 两个函数都涵盖与SimpleXML::__construct()
相同的功能。
其他函数simplexml_load_*()
有第二个参数string $class_name = "SimpleXMLElement"
来指定要返回的对象的类。这不是函数的特定功能,因为你可以“使用”与通常的instanciation非常相似的东西
class MyXML extends SimpleXMLElement {}
$a = new MyXML($xml);
$b = simplexml_load_string($xml, 'MyXML');
OOP和程序方法之间的区别在于,函数在出错时返回false
,但构造函数抛出异常。
答案 1 :(得分:4)
它主要是一个方便包装。通过自己构建基本元素,您至少需要两行代码才能完成任何事情。使用simplexml_load_string()
单个表达式就足够了:
print simplexml_load_string($xml)->title;
短于:
$e = new SimpleXMLElement($xml);
print $e->title;
当然,功能签名也有轻微的变化。
更新:与
的长度完全相同print(new SimpleXMLElement($xml))->title;
答案 2 :(得分:0)
simplexml_load_string可以返回不同的对象:
CLASS_NAME
您可以使用此可选参数 simplexml_load_string()将返回一个 指定类的对象。那 上课应该延长 SimpleXMLElement类。