OOP mit PHP5 - Einstiegstutorial 2 - Typprüfung
1. Die Abschnitte
- Fehlerbehandlung
- Die Vollpfosten-Exception
- Die Daten-Exception
- Eine Variante
- Typprüfung
- Erläuterungen
2. PHP 5.1
Was ich euch jetzt zeige ist leider erst seit PHP 5.1 möglich. Solltet ihr eine niedrigere Version benutzen, so müsst ihr
halt einfach auf Exceptions zurückgreifen (ab PHP 5.0). Das Prinzip selber ist sehr simpel. Die Eigenschaften
$filetype
und $deny
müssen zwangsläufig Arrays sein, weil sonst die entsprechenden Abfragen nicht
funktionieren. Das kann man mit einem einfachen Type Hinting überprüfen.
3. Die Überprüfung
Dazu müssen nur die beiden Methoden angepasst werden, mit denen die Zuweisung erfolgt. Das sind dann denyFolder
und setFiletype
. Und beide benötigen dafür nur eine klitzekleine Ergänzung.
public function denyFolder (array $var)
{
...
}
public function setFiletype (array $var)
{
...
}
Erläuterung
Das kleine Wörtchen array
beim entsprechenden Parameter $var
der Methoden übernimmt die
Überprüfung. Sollte es sich dabei nicht um ein Array handeln, so folgt die Fehlermeldung auf dem Fuße.
Ein wichtiger Hinweis
Damit ihr hier einen Hinweis zu Gesicht bekommt, müsst ihr das error_reporing
wieder auf E_ALL
umstellen.
Denn hier gibt es eine Besonderheit. Das sieht man an der Fehlermeldung.
Catchable Fatal error: Argument 1 passed to Dir::setFiletype()
must be an array, called in ... on line 190
and defined in ... on line ...
Wir haben zwar einen Fatal Error, der aber abfangbar ist, da er vom Programmierer vorgeben wurde. Und das wird beim
error_reporting
mit E_RECOVERABLE_ERROR
eingestuft.
4. PHP 5.0
In dem Fall schmeißt ihr einfach eine Exception à la
public function denyFolder ($var)
{
if (is_array ($var))
{
$this -> deny = $var;
}
else
{
throw new vollpfosten_exception
(
'Torfkopp! Keine Ahnung, was ein Array ist?.'
);
}
}
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt