__toString() is not intended to be called directly.Instead, it defines what is returned when the object is cast to string, either explicitly with:(string)$elementOr implicitly, when used in certain contexts which would cause a conversion to string.
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SimpleXMLElement::__toString — Returns the string content
Returns text content that is directly in this element. Does not return text content that is inside this element's children.
У цієї функції немає параметрів.
Returns the string content on success or an empty string on failure.
Приклад #1 Get string content
<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>
Поданий вище приклад виведе:
1 3
__toString() is not intended to be called directly.Instead, it defines what is returned when the object is cast to string, either explicitly with:(string)$elementOr implicitly, when used in certain contexts which would cause a conversion to string.
For those for whom it may not be immediately obvious from the example, the echo is what is forcing __toString() to be used.
However, to assign the text of a node (but not its children) to a variable:
$XML = new SimpleXMLElement('<p>Hello<span> world</span>.<span> Good day!</span></p>');
$Text = $XML->__toString();
is effectively:
$Text = 'Hello.'; // The <span>s are ignored.
Either of:
$Text = $XML->span->__toString();
$Text = $XML->span[0]->__toString();
is effectively:
$Text = ' world'; // Only the first <span> is used.
$Text = $XML->span[1]->__toString();
is effectively:
$Text = ' Good day!'; // Only the second <span> is used.