Hauptmenü

Untermenü

OOP mit PHP5 - Einstiegstutorial 2 - Typprüfung

1. Die Abschnitte

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 errorArgument 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