Start · Sprachen · PHP · Referenz · pos

pos

Funktion

Gibt das aktuelle Element eines Arrays zurück — <code>pos()</code> ist ein Alias für <code>current()</code>.

seit PHP 4.0.0 Kategorie: array

Signatur

pos(array|object $array): mixed

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

Typ
mixed
Beschreibung
Gibt den Wert des aktuellen Elements im Array zurück. Ist das Array leer oder zeigt der interne Zeiger über das Ende hinaus, wird 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
ApfelBananKirschebool(false)

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
Schlüssel: 0 => Wert: 0 Schlüssel: 1 => Wert: false Schlüssel: 2 => Wert: NULL Schlüssel: 3 => Wert: ''

// 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().

Siehe auch