__toString() 不打算直接调用。
相反,它定义了在对象转换为字符串时返回的内容,无论是使用
(string)$element
显式转换,还是在某些会导致字符串转换的上下文中隐式转换。
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SimpleXMLElement::__toString — 返回字符串内容
此函数没有参数。
成功时返回字符串内容,失败时返回空字符串。
示例 #1 获取字符串内容
<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>
以上示例将输出
1 3
__toString() 不打算直接调用。
相反,它定义了在对象转换为字符串时返回的内容,无论是使用
(string)$element
显式转换,还是在某些会导致字符串转换的上下文中隐式转换。
[有人删除其他 Patanjali 的注释,因为它有错误! :-(]
对于那些可能没有从示例中立即明白的人来说,echo 是强制使用 __toString() 的原因。
但是,要将节点的文本(而不是其子节点)分配给变量
$XML = new SimpleXMLElement('<p>Hello<span> world</span>.<span> Good day!</span></p>');
$Text = $XML->__toString();
实际上是
$Text = 'Hello.'; // <span> 被忽略。
以下任一
$Text = $XML->span->__toString();
$Text = $XML->span[0]->__toString();
实际上是
$Text = ' world'; // 仅使用第一个 <span>。
$Text = $XML->span[1]->__toString();
实际上是
$Text = ' Good day!'; // 仅使用第二个 <span>。