echo $begrüßung;
Anschließend wäre eine Einführung in die SPL angebracht. Auch damit kann man einige Magie zu Klassen hinzufügen, wie beispielsweise Array-Zugriff und Iteration über Objekte.
<?php
/*** create a new iterator object ***/
$it = new DirectoryIterator('./');/*** loop directly over the object /
while($it->valid())
{
/ check if value is a directory /
if($it->isDir())
{
/ echo the key and current value /
echo $it->key().' -- '.$it->current().'<br />';
}
/ move to the next iteration ***/
$it->next();
}
?>
>
> fein das, hatte mir bisher noch niemand gesagt, dass das alles auch so geht...; oder ich habs bisher nicht kapiert oder zwar gesehen aber irgendwie nich abgespeichert. so ein aha-erlebnis hatte ich vor einiger zeit mal mit der alternativen syntax (da dacht ich noch, es bräuchte eine extra templatesprach.
So sollst du das nicht anwenden. Das Iterator-Interface definiert die Methoden valid(), key(), current(), next(), und rewind(), damit eine Klasse die für ein foreach notwendigen Informationen bereitstellt. Diese Methoden sind nicht zum Aufruf durch den Anwender gedacht (im Gegensatz zu den isXxx()- und getXxx()-Methoden im Falle des DirectoryIterators). Anwenden sollst du ein foreach auf ein Objekt dieser Klasse:
~~~php
foreach (new DirectoryIterator('test') as $entry) {
printf("%s ist ein%s\n",
$entry,
$entry->isDir() ? ' Verzeichnis' : 'e Datei');
}
$entry ist übrigens ebenfalls ein DirectoryIterator-Objekt, über das man im Falle eines Verzeichnisses weiter iterieren kann.
echo "$verabschiedung $name";