OOP PHP5 - Klassen- und Objektfunktionen
1. Nützliche Helferlein
... gibt es zwar schon seit PHP 4.x, ich stelle aber mal trotzdem ein paar davon vor. Gemäß meiner Linie konzentriere ich mich aber nur auf die meiner Meinung nach sinnvollen. Wer sich für alle interessiert, findet hier eine komplette Liste, auch wenn einige mittlerweile als "deprecated" (missbilligt) eingestuft werden. Und das zu Recht.
2. class_exists
... prüft, ob eine Klasse verfügbar ist. Diese Funktion kann man sehr gut in Kombination mit __autoload nutzen, um mögliche Fehler abzufangen.
function __autoload($class)
{
@include 'class/'.$class.'.class.php';
if (!class_exists($class, false))
{
die('Klasse nicht gefunden: '. $class);
}
}
$dieter = new Mann;
$doerte = new Frau;
3. get_parent_class
Ermittelt die Elternklasse eines Objektes.
class Mensch { }
class Mann extends Mensch
{
public function __construct()
{
echo get_parent_class($this);
}
}
$dieter = new Mann;
4. get_class_methods
Gibt die Methoden einer Klasse zurück. Dabei gibt es zwei Möglichkeiten.
class Mann
{
public function __construct () { ... }
public function setGeschlecht () { ... }
}
print_r (get_class_methods('Mann'));
print_r (get_class_methods(new Mann));
5. get_class_vars
Liefert die vorbelegten(!) Werte von öffentlichen(!) Eigenschaften einer Klasse.
class Frau
{
public $schuhe = 0;
public $alter = 42;
protected $geschminkt = false;
private $geschlecht;
public function __construct()
{
$this -> schuhe = 200;
$this -> alter = 29;
}
}
$doerte = new Frau();
print_r (get_class_vars(get_class($doerte)));
6. method_exists
Prüft, ob eine Methode in einer Klasse vorhanden ist.
class Frau
{
private $alter = 29;
public function setzEchtesAlter($value)
{
$this -> alter = $value;
}
}
$doerte = new Frau;
if (method_exists($doerte, 'setzEchtesAlter'))
{
$doerte -> setzEchtesAlter = 42;
}
7. property_exists
Prüft, ob eine Eigenschaft in einer Klasse vorhanden ist.
class Frau
{
public $alter = 29;
}
$doerte = new Frau;
if (property_exists($doerte, 'alter'))
{
$doerte -> alter = 42;
}
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt