W3docs

pos()

Die PHP-Funktion pos() ist eine eingebaute Array-Funktion, die den aktuellen Wert an der internen Zeigerposition eines Arrays zurückgibt.

In PHP ist die Funktion pos() eine eingebaute Array-Funktion, die den Wert des Elements an der internen Zeigerposition des Arrays zurückgibt. Jedes PHP-Array besitzt einen internen Zeiger, der verfolgt, welches Element „aktuell" ist; pos() liest den Wert an dieser Zeigerposition, ohne ihn zu verschieben.

pos() ist ein Alias von current() und verhält sich identisch. Da Aliasse in zukünftigen PHP-Versionen missbilligt oder entfernt werden können, sollte in neuem Code current() bevorzugt werden — pos() ist hier hauptsächlich dokumentiert, damit Sie es in älteren Projekten erkennen können.

Diese Seite behandelt die Syntax der Funktion, was sie zurückgibt (einschließlich des Sonderfalls eines leeren Arrays), wie sie sich zu den anderen Zeigerfunktionen verhält und wann der Einsatz des internen Zeigers überhaupt sinnvoll ist.

Syntax der pos()-Funktion

pos() nimmt ein einzelnes Argument entgegen — das zu untersuchende Array — und gibt den Wert des Elements zurück, auf das der interne Zeiger aktuell zeigt.

pos(array $array): mixed
  • $array — das Array, aus dem gelesen werden soll. Es wird als Referenz übergeben, daher muss die Array-Variable zuweisbar sein (es kann kein Literal übergeben werden).
  • Rückgabewert — der Wert des aktuellen Elements oder false, wenn das Array leer ist oder der Zeiger über das letzte Element hinaus verschoben wurde.

Da ein Element durchaus den Wert false enthalten kann, sollte der Rückgabewert niemals allein verwendet werden, um festzustellen, ob ein Fehler aufgetreten ist. Verwenden Sie key() (das hinter dem Ende null zurückgibt), wenn Sie das Ende eines Arrays zuverlässig erkennen müssen.

Verwendungsbeispiele der pos()-Funktion

Schauen wir uns einige praktische Beispiele an, wie die Funktion pos() verwendet werden kann, um den Wert an der aktuellen Position des internen Zeigers abzurufen.

Verwendungsbeispiel der pos()-Funktion

<?php

$colors = ['red', 'green', 'blue'];

// Set the current position to the first element
reset($colors);

// Retrieve the value of the element at the current position
echo pos($colors) . '-'; // Output: red

// Move the current position to the next element
next($colors);

// Retrieve the value of the element at the current position
echo pos($colors) . '-'; // Output: green

// Move the current position to the next element
next($colors);

// Retrieve the value of the element at the current position
echo pos($colors); // Output: blue

In diesem Beispiel haben wir ein Array namens $colors, das drei Elemente enthält. Wir setzen den internen Zeiger mit reset() auf das erste Element und rufen dann mit pos() den Wert an dieser Position ab. Anschließend verschieben wir den Zeiger mit next() und lesen den Wert erneut, wobei wir dies einmal wiederholen, um das letzte Element zu erreichen. Der entscheidende Punkt: pos() selbst verschiebt den Zeiger nie — das tun nur reset(), next(), prev() und end().

Lesen nach dem Ende

Sobald der Zeiger über das letzte Element hinaus bewegt wurde, gibt pos() false zurück. Deshalb ist false als „aktueller Wert" mehrdeutig — es kann entweder bedeuten „das Element ist false" oder „wir haben das Ende überschritten":

php— editable, runs on the server

Wenn Sie tatsächlich wissen müssen, ob Sie das Ende erreicht haben, kombinieren Sie pos() mit key(): key() gibt nach dem letzten Element null zurück, während ein echter Schlüssel (0, 1, …) bedeutet, dass der Zeiger noch gültig ist.

pos() und die anderen Zeigerfunktionen

pos() ist ein Teil des internen PHP-Zeiger-Toolkits. Jede Funktion übernimmt eine bestimmte Rolle:

FunktionWas sie tut
current()Gibt den aktuellen Wert zurück (der Standardname; pos() ist sein Alias).
key()Gibt den aktuellen Schlüssel statt des Werts zurück.
next()Verschiebt den Zeiger vorwärts und gibt dann den neuen aktuellen Wert zurück.
prev()Verschiebt den Zeiger rückwärts und gibt dann den neuen aktuellen Wert zurück.
reset()Setzt den Zeiger auf das erste Element.
end()Setzt den Zeiger auf das letzte Element.

Wann der interne Zeiger verwendet werden sollte

Für die meisten Array-Durchläufe ist eine foreach-Schleife klarer und sicherer — sie berührt den internen Zeiger des Arrays überhaupt nicht. Greifen Sie nur dann auf pos()/current() und verwandte Funktionen zurück, wenn Sie eine feinkörnige, manuelle Kontrolle über die Position benötigen: beispielsweise um das aktuelle Element innerhalb einer while (key($arr) !== null)-Schleife zu inspizieren oder um in zwei Richtungen durch ein Array zu schreiten. Wenn Sie einfach jedes Element der Reihe nach durchlaufen möchten, bevorzugen Sie foreach.

Fazit

Die Funktion pos() gibt den Wert an der internen Zeigerposition eines Arrays zurück, ohne ihn zu verschieben, und ist ein veralteter Alias für current(). In neuem Code sollte current() bevorzugt werden; kombinieren Sie es mit next(), prev(), reset() und end(), um manuell durch ein Array zu navigieren — und denken Sie daran, dass ein Rückgabewert von false entweder einen false-Wert oder das Ende des Arrays bedeuten kann, daher sollte key() verwendet werden, wenn diese Unterscheidung wichtig ist.

Übungen

Übung
Was ist die korrekte Verwendung und Funktionalität der pos()-Funktion in PHP?
Was ist die korrekte Verwendung und Funktionalität der pos()-Funktion in PHP?
Was this page helpful?