Zum Inhalt springen

current()

Einführung

SimpleXML ist eine PHP-Erweiterung, die eine einfache und benutzerfreundliche API für die Arbeit mit XML-Dokumenten bereitstellt. Die SimpleXMLIterator::current()-Methode ist eine der Iterator-Methoden der Klasse SimpleXMLIterator. Sie gibt das aktuelle SimpleXMLElement-Objekt während der Iteration zurück. In diesem Artikel werden wir besprechen, wie man diese Methode in PHP verwendet.

Verständnis der Methode SimpleXMLIterator::current()

Die SimpleXMLIterator::current()-Methode gibt das SimpleXMLElement-Objekt am internen Zeiger des Iterators zurück. Die Syntax lautet:

php
SimpleXMLIterator::current(): SimpleXMLElement

Diese Methode erfordert keine Parameter.

Wichtiger Hinweis zu foreach-Schleifen: Die foreach-Schleife in PHP ruft automatisch current() am Anfang jeder Iteration auf, um die Schleifenvariable zu füllen, und setzt den Zeiger anschließend mit next() fort. Daher gibt der Aufruf von current() innerhalb des foreach-Schleifenkörpers das aktuelle Element zurück (identisch mit der Schleifenvariable), nicht das nächste. Um auf das aktuelle Element explizit zuzugreifen, verwenden Sie die Schleifenvariable oder kombinieren Sie rewind() und valid() mit next().

Anwendungsbeispiel

Schauen wir uns ein Beispiel an, um die Verwendung der Methode SimpleXMLIterator::current() in PHP zu verstehen:

php
<?php
$books = new SimpleXMLIterator('books.xml');
foreach ($books as $book) {
    echo $book->title . "\n";
    // current() returns the current element (same as $book)
    // var_dump($books->current()); 
}

In diesem Beispiel erstellen wir ein SimpleXMLIterator-Objekt direkt aus der XML-Datei. Wir verwenden eine foreach-Schleife, um über jedes Buchelement zu iterieren und seinen Titel auszugeben. Da foreach current() aufruft, bevor der Zeiger weitergesetzt wird, gibt current() den aktuellen Knoten innerhalb des Schleifenkörpers zurück. Für den expliziten Zugriff auf den aktuellen Knoten verwenden Sie die von der Schleife bereitgestellte Variable $book oder wechseln Sie zu einer while-Schleife mit rewind(), valid() und next(), um den Zeiger manuell zu steuern:

php
<?php
$books = new SimpleXMLIterator('books.xml');
$books->rewind();
while ($books->valid()) {
    echo $books->current()->title . "\n";
    $books->next();
}

Fazit

Die SimpleXMLIterator::current()-Methode ermöglicht den Zugriff auf das SimpleXMLElement-Objekt am internen Zeiger des Iterators. Sie ist ein Standardbestandteil von PHPs Iterator-Schnittstelle und gewährleistet ein konsistentes Verhalten beim Durchlaufen von XML-Daten. Entwickler sollten beachten, dass foreach automatisch current() am Anfang jeder Iteration aufruft, sodass es im Schleifenkörper das aktuelle Element zurückgibt. Für eine präzise Steuerung kombinieren Sie current() mit key(), next() und rewind().

Praxis

Was macht die Funktion current() in PHP laut dem Quelltext?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.