PHPCon Poland 2024

SimpleXMLElement::hasChildren

(No version information available, might only be in Git)

SimpleXMLElement::hasChildren現在の要素が子要素を持つかどうかを調べる

説明

public SimpleXMLElement::hasChildren(): bool
警告

PHP 8.0 より前のバージョンでは、 SimpleXMLElement::hasChildren() は サブクラスの SimpleXMLIterator でのみ宣言されていました。

このメソッドは、現在の SimpleXMLElement 要素が子要素を持つかどうかを調べます。

パラメータ

この関数にはパラメータはありません。

戻り値

現在の要素が子要素を持つ場合に true、それ以外の場合に false を返します。

例1 現在の要素が子要素を持つかどうかを調べる

<?php
$xml
= <<<XML
<books>
<book>
<title>PHP Basics</title>
<author>Jim Smith</author>
</book>
<book>XML basics</book>
</books>
XML;

$xmlElement = new SimpleXMLElement($xml);
for (
$xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
if (
$xmlElement->hasChildren()) {
var_dump($xmlElement->current());
}
}
?>

上の例の出力は以下となります。

object(SimpleXMLElement)#2 (2) {
  ["title"]=>
  string(10) "PHP Basics"
  ["author"]=>
  string(9) "Jim Smith"
}

add a note

User Contributed Notes 1 note

up
-6
grummfy at gmail dot com
14 years ago
Hello,

just a note for people like me who encounter the problems :

<?php
foreach($xmlIterator as $x)
{
if(
$x->hasChildren())
{
//never reach
echo 'x : ';
var_dump($x->current());
}
if(
$xmlIterator->hasChildren())
{
echo
'iterator : ';
var_dump($x->current()); //all time null
var_dump($xmlIterator->current());
}
}
?>
To Top