PHP Conference Japan 2024

SimpleXMLElement::__toString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::__toString返回字符串内容

描述

public SimpleXMLElement::__toString(): string

返回此元素中直接存在的文本内容。不返回此元素子元素内的文本内容。

参数

此函数没有参数。

返回值

成功时返回字符串内容,失败时返回空字符串。

示例

示例 #1 获取字符串内容

<?php
$xml
= new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo
$xml;
?>

以上示例将输出

1 3

参见

添加注释

用户贡献的注释 2 条注释

mmj at example dot net
7 年前
__toString() 不打算直接调用。

相反,它定义了在对象转换为字符串时返回的内容,无论是使用

(string)$element

显式转换,还是在某些会导致字符串转换的上下文中隐式转换。
Patanjali
8 年前
[有人删除其他 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>。
To Top