Callback Zend_Validate_Callback erlaubt es einen Callback anzugeben der verwendet wird um einen angegebenen Wert zu prüfen. Unterstützte Optionen für Zend_Validate_Callback Die folgenden Optionen werden für Zend_Validate_Callback unterstützt: callback: Setzt den Callback welcher für die Prüfung aufgerufen wird. options: Setzt zusätzliche Optionen welche an den Callback übergeben werden. Grundsätzliche Verwendung Der einfachste Anwendungsfall besteht darin eine einzelne Funktion zu haben und diese als Callback zu verwenden. Angenommen wir haben die folgende Funktion. Um diese in Zend_Validate_Callback zu verwenden muss man Sie nur auf folgende Weise aufrufen: isValid($input)) { // Input scheint gültig zu sein } else { // Input ist ungültig } ]]> Verwendung mit Closures PHP 5.3 führt Closures ein, welche grundsätzlich selbst-enthaltene oder anonyme Funktionen sind. PHP nimmt an das Closures eine andere Form eines Callbacks sind, und können daher als solche mit Zend_Validate_Callback verwendet werden. Als Beispiel: isValid($input)) { // Input scheint gültig zu sein } else { // Input ist ungültig } ]]> Verwendung mit klassenbasierten Callbacks Natürlich ist es auch möglich eine Klassenmethode als Callback zu verwenden. Angenommen wir haben die folgende Klassenmethode: Die Definition des Callbacks ist in diesem Fall fast die gleiche. Man muss nur eine Instanz der Klasse vor der Methode erstellen und ein Array das den Callback beschreibt: isValid($input)) { // Input scheint gültig zu sein } else { // Input ist ungültig } ]]> Man kann auch eine statische Methode als Callback definieren. Angenommen wir haben die folgende Klassendefinition dann ist die Verwendung des Prüfers wie folgt: isValid($input)) { // Input scheint gültig zu sein } else { // Input ist ungültig } ]]> Letztendlich kann man, wenn man PHP 5.3 verwendet, die magische Methode __invoke() in der eigenen Klasse definieren. Wenn man das tut dann funktioniert die Angabe einer Instanz der Klasse genauso: isValid($input)) { // Input scheint gültig zu sein } else { // Input ist ungültig } ]]> Optionen hinzufügen Zend_Validate_Callback erlaubt auch die Verwendung von Optionen welche als zusätzliche Argumente dem Callback übergeben werden. Nehmen wir die folgende Klassen und Methoden Definition an: Es gibt zwei Wege um den Prüfer über zusätzliche Optionen zu informieren: Diese im Constructor übergeben, oder Sie mit der Methode setOptions() übergeben. Um Sie im Contructor zu übergeben, muss ein Array übergeben werden das die zwei Schlüssel "callback" und "options" enthält: array('MyClass', 'myMethod'), 'options' => $option, )); if ($valid->isValid($input)) { // Input scheint gültig zu sein } else { // Input ist ungültig } ]]> Andererseits können Sie dem Prüfer auch nach der Instanzierung übergeben werden: setOptions($option); if ($valid->isValid($input)) { // Input scheint gültig zu sein } else { // Input ist ungültig } ]]> Wenn zusätzliche Werte an isValid() übergeben werden, dann werden diese Werte unmittelbar nach $value hinzugefügt. setOptions($option); if ($valid->isValid($input, $additional)) { // Input scheint gültig zu sein } else { // Input ist ungültig } ]]> Wenn der Aufruf zu einem Callback durchgeführt wird, dann wird der Wert der zu überprüfen ist als erstes Argument an den Callback übergeben gefolgt von allen anderen Werten die an isValid() übergeben wurden; alle anderen Optionen folgen Ihm. Die Anzahl und der Typ der Optionen welche verwendet werden ist nicht limitiert.