Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
 
 
 

Den aktuellen Arrayzeiger ausgeben

Sie befinden sich: Home > Php Tutorial > Den aktuellen Arrayzeiger...

Den aktuellen Arrayzeiger ausgeben


Eintrag am:  02.09.2010
Hits / Besucher:  4779
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

In diesem Tutorial möchte ich Ihnen genauer erklären, wie Sie mit Hilfe der current() Funktion in PHP den Inhalt ausgeben können, auf den der Arrayzeiger aktuell zeigt. Jedes Array besitzt einen Zeiger, über den das Array auf die gespeicherten Werte zugreifen kann.

Der Zeiger kann von PHP automatisch, zum Beispiel beim Verarbeiten eines Arrays in einer foreach Schleife, oder auch vom Programmierer selbst manuell, zum Beispiel durch die Verwendung der next() Funktion, beliebig verschoben werden. Mit der current() Funktion kann dann der Wert zurückgegeben werden, auf den der Arrayzeiger im Moment des Aufrufs zeigt. Dazu muss man der Funktion nur das entsprechende Array übergeben, dessen aktuell angezeigter Wert ausgegeben werden soll.

Die genaue Syntax der Funktion lautet demnach einfach:

current(Array);

Das folgende kleine Beispiel zeigt die Verwendung der current() Funktion innerhalb eines PHP Scripts.

Grundlegendes Beispiel

<?php

$array = array('PHP 3', 'PHP 4', 'PHP 5', 'PHP 6');

echo current($array);
?>

Ausgabe: PHP 3

Im Beispiel werden dem Array $array vier Werte zugeteilt. Der Zeiger des Arrays steht nach der Erstellung mit array() auf dem ersten Element. Wenn nun current() aufgerufen wird, gibt die Funktion den Wert zurück, auf den der Zeiger gerade zeigt. Das ist in diesem Fall 'PHP 3'.

Die Ausgabe des Beispiels:

PHP 3

Die Erklärung zum Beispiel:

Im Beispiel werden dem Array $array vier Werte zugeteilt. Der Zeiger des Arrays bleibt bei der Verwendung des array(), auf dem als ersten übergebenen Wert. Wenn nun die current() Funktion damit aufgerufen wird, den Wert hinter dem aktuellen Arrayzeiger des übergebenen Arrays auszugeben, so ergibt sich daraus die Ausgabe von 'PHP 3'.

Navigation durch ein Array mit current(), next() und prev()

Die Funktion current() zeigt ihren wahren Nutzen erst im Zusammenspiel mit den Navigationsfunktionen next(), prev(), reset() und end(). Mit diesen Funktionen können Sie den internen Arrayzeiger gezielt verschieben und jederzeit den aktuellen Wert abfragen.

<?php

$sprachen = array('PHP', 'Python', 'Java', 'Ruby');

echo current($sprachen);
/* Ausgabe: PHP */

next($sprachen);
echo current($sprachen);
/* Ausgabe: Python */

next($sprachen);
echo current($sprachen);
/* Ausgabe: Java */

prev($sprachen);
echo current($sprachen);
/* Ausgabe: Python */
?>

Mit next() wird der Zeiger um eine Position nach vorne verschoben, mit prev() um eine Position zurück. Der Aufruf von current() gibt danach immer den Wert an der aktuellen Zeigerposition zurück.

Den Zeiger zurücksetzen mit reset() und end()

Wenn Sie den Arrayzeiger auf den Anfang oder das Ende eines Arrays setzen möchten, verwenden Sie reset() bzw. end(). Das ist besonders dann hilfreich, wenn Sie vorher durch das Array navigiert haben und zum Ausgangspunkt zurückkehren wollen.

<?php

$farben = array('Rot', 'Blau', 'Gelb');

/* Zeiger ans Ende setzen */
end($farben);
echo current($farben);
/* Ausgabe: Gelb */

/* Zeiger an den Anfang */
reset($farben);
echo current($farben);
/* Ausgabe: Rot */
?>

Verhalten bei leeren Arrays und am Arrayende

Wenn das übergebene Array keine Elemente enthält, gibt current() den Wert false zurück. Das Gleiche passiert, wenn der interne Zeiger über das letzte Element hinaus verschoben wurde, zum Beispiel durch einen zusätzlichen Aufruf von next() am Ende des Arrays.

<?php

$leer = array();
var_dump(current($leer));
/* Ausgabe: bool(false) */

$zahlen = array(10, 20);
next($zahlen);
next($zahlen);
/* Zeiger steht jetzt hinter dem letzten Element */
var_dump(current($zahlen));
/* Ausgabe: bool(false) */

reset($zahlen);
echo current($zahlen);
/* Ausgabe: 10 */
?>

current() mit assoziativen Arrays

Die Funktion current() funktioniert auch mit assoziativen Arrays. Sie gibt dabei immer den Wert an der aktuellen Zeigerposition zurück. Den passenden Schlüssel können Sie mit der Funktion key() auslesen.

<?php

$person = array(
'name' => 'Max Mustermann',
'alter' => 30,
'stadt' => 'Berlin'
);

echo key($person) . ': ' . current($person);
/* Ausgabe: name: Max Mustermann */

next($person);
echo key($person) . ': ' . current($person);
/* Ausgabe: alter: 30 */
?>

Wichtiger Hinweis: current() nach foreach

Seit PHP 7 setzt eine foreach-Schleife den internen Arrayzeiger nicht mehr zuverlässig zurück. Nach dem Durchlaufen steht der Zeiger hinter dem letzten Element, und current() gibt false zurück. Wenn Sie nach einer foreach-Schleife erneut auf den Zeiger zugreifen möchten, setzen Sie ihn mit reset() zurück.

<?php

$tiere = array('Hund', 'Katze', 'Vogel');

foreach ($tiere as $tier) {
/* Schleife durchlaufen */
}

var_dump(current($tiere));
/* Ausgabe: bool(false) */

reset($tiere);
echo current($tiere);
/* Ausgabe: Hund */
?>

Übersicht der verwandten Funktionen

PHP bietet mehrere Funktionen, um den internen Arrayzeiger zu steuern. Die folgende Tabelle gibt einen schnellen Überblick.

FunktionBeschreibung
current()Gibt den Wert an der aktuellen Zeigerposition zurück
key()Gibt den Schlüssel an der aktuellen Zeigerposition zurück
next()Verschiebt den Zeiger um eine Position nach vorne
prev()Verschiebt den Zeiger um eine Position zurück
reset()Setzt den Zeiger auf das erste Element
end()Setzt den Zeiger auf das letzte Element

 

Tags:

 

Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.