Identical Zend_Validate_Identical erlaubt es zu prüfen ob ein angegebener Wert mit einem angegebenen Vergleichswert identisch ist. Unterstützte Optionen für Zend_Validate_Identical Die folgenden Optionen werden für Zend_Validate_Identical unterstützt: strict: Definiert ob die Prüfung strikt durchgeführt werden soll. Der Standardwert ist TRUE. token: Setzt den Token gegen den die Eingabe geprüft werden soll. Grundsätzliche Verwendung Um zu prüfen ob zwei Werte identisch sind muss man den originalen Wert als Vergleichswert setzen. Siehe das folgende Beispiel welches zwei Strings vergleicht. isValid($value) { return true; } ]]> Die Prüfung wird nur dann TRUE zurückgeben wenn beide Werte 100% identisch sind. In unserem Beispiel wenn $value 'original' ist. Man kann den gewünschten Token auch im Nachhinein durch Verwendung der Methode setToken() setzen und mit getToken() den aktuell gesetzten Token erhalten. Identische Objekte Natürlich kann Zend_Validate_Identical nicht nur Strings prüfen, sondern jeden Variablentyp wie Boolean, Integer, Float, Array oder sogar Objekte. Wie bereits notiert müssen Vergleichswert und Wert identisch sein. isValid($input)) { // Der Wert scheint gültig zu sein } else { // Der Wert ist ungültig } ]]> Vergleich des Typs Man sollte darauf acht geben das der Typ einer Variable für die Prüfung verwendet wird. Das bedeutet das der String '3' nicht identisch ist mit dem Integerwert 3. Wenn man eine nicht strikte Prüfung durchführen will muss man die strict Option setzen. Formular Elemente Zend_Validate_Identical unterstützt auch den Vergleich von Formularelementen. Das kann getan werden indem der Name des Elements als token verwendet wird. Siehe das folgende Beispiel: addElement('password', 'elementOne'); $form->addElement('password', 'elementTwo', array( 'validators' => array( array('identical', false, array('token' => 'elementOne')) ) )); ]]> Indem der Elementname vom ersten Element als token für das zweite Element verwendet wird, prüft der Prüfer ob das zweite Element gleich dem ersten Element ist. Im Falle das der Benutzer keine zwei identischen Werte eingegeben hat, erhält man einen Prüffehler. Strikte Prüfung Wie vorher erwähnt prüft Zend_Validate_Identical die Token strikt. Man kann dieses Verhalten ändern indem die strict Option verwendet wird. Der Standardwert für diese Eigenschaft ist TRUE. 123, 'strict' => FALSE)); $input = '123'; if ($valid->isValid($input)) { // Die Eingabe scheint gültig zu sein } else { // Die Eingabe ist ungültig } ]]> Der Unterschied zum vorhergehenden Beispiel besteht darin dass die Prüfung in diesem Fall TRUE zurückgibt, selbst wenn man einen Integerwert mit einem String prüft solange der Inhalt identisch aber nicht vom gleichen Typ ist. Der Bequemlichkeit halber kann man auch setStrict() und getStrict() verwenden. Konfiguration Wie alle anderen Prüfungen unterstützt Zend_Validate_Identical auch die Verwendung von Konfigurationseinstellungen als Eingabe Parameter. Das bedeutet das man den Prüfer mit einem Zend_Config Objekt konfigurieren kann. Aber das führt zu einem weiteren Fall den man berücksichtigen muss. Wenn man ein Array als Vergleichswert verwendet, dann sollte man dieses in einen 'token' Schlüssel einhüllen wenn dieses nur ein Element enthält. 123)); if ($valid->isValid($input)) { // Der Wert scheint gültig zu sein } else { // Der Wert ist ungültig } ]]> Das oben stehende Beispiel prüft den Integerwert 123. Der Grund für diesen speziellen Fall ist, dass man den Token der verwendet werden soll, durch Angabe des 'token' Schlüssels, konfigurieren kann. Wenn der eigene Vergleichswert nur ein Element enthält, und dieses Element 'token' heißt dann muss man dieses, wie im oben stehenden Beispiel gezeigt, einhüllen. array('token' => 123))); if ($valid->isValid($input)) { // Der Wert scheint gültig zu sein } else { // Der Wert ist ungültig } ]]>