Signatur
Beschreibung
pos() ist ein direkter Alias der Funktion current() und gibt das Element zurück, auf das der interne Array-Zeiger des übergebenen Arrays aktuell zeigt. Jedes Array verfügt über einen internen Zeiger, der beim Erstellen des Arrays auf das erste Element gesetzt wird.
Die Funktion verändert den internen Zeiger nicht. Um den Zeiger zu verschieben, können Funktionen wie next(), prev(), reset() oder end() verwendet werden. Da pos() lediglich ein Alias ist, verhält es sich in jeder Hinsicht identisch zu current().
Die Funktion gibt false zurück, wenn das Array leer ist oder der Zeiger hinter das letzte Element gezeigt hat. Da false auch ein gültiger Arraywert sein kann, sollte zur sicheren Prüfung key() verwendet werden — gibt key() null zurück, steht der Zeiger außerhalb des Arrays.
In modernem PHP-Code wird üblicherweise current() direkt verwendet, da Aliase wie pos() tendenziell weniger bekannt und potenziell verwirrend sind. pos() stammt aus einer frühen PHP-Ära und ist aus Kompatibilitätsgründen erhalten geblieben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $array Pflicht | array|object | Das Array (oder Objekt), aus dem das aktuelle Element gelesen werden soll. Der interne Zeiger bestimmt, welches Element zurückgegeben wird. |
Rückgabewert
false zurückgegeben.Beispiele
Aktuelles Element eines Arrays ausgeben
<?php
$fruits = ['Apfel', 'Banane', 'Kirsche'];
// Zeiger steht initial auf dem ersten Element
echo pos($fruits); // Apfel
next($fruits);
echo pos($fruits); // Banane
next($fruits);
echo pos($fruits); // Kirsche
next($fruits);
var_dump(pos($fruits)); // bool(false) — Zeiger hinter dem letzten Element
Sicheres Prüfen des Zeigers mit key()
<?php
$data = [0, false, null, ''];
reset($data);
while (key($data) !== null) {
$wert = pos($data);
echo 'Schlüssel: ' . key($data) . ' => Wert: ' . var_export($wert, true) . PHP_EOL;
next($data);
}
// Alle Elemente werden korrekt ausgegeben, obwohl einige 'falsy' sind
// Wichtig · Fallstricke
Fallstrick: Da pos() / current() bei leerem Array oder erschöpftem Zeiger false zurückgibt, kann ein direkter Vergleich mit === false nicht zuverlässig unterscheiden, ob der Zeiger am Ende steht oder ob false ein echter Arraywert ist. Nutze in solchen Fällen key(), das null zurückgibt, wenn der Zeiger ungültig ist.
pos() ist ein Alias und könnte in zukünftigen PHP-Versionen als veraltet markiert werden. Für neuen Code empfiehlt sich die direkte Verwendung von current().