| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.validate.set.in_array">
- <title>InArray</title>
- <para>
- <classname>Zend_Validate_InArray</classname> erlaubt es zu prüfen ob ein gegebener Wert
- in einem Array enthalten ist. Er ist auch in der Lage mehrdimensionale Arrays zu prüfen.
- </para>
- <sect3 id="zend.validate.set.in_array.options">
- <title>Unterstützte Optionen für Zend_Validate_InArray</title>
- <para>
- Die folgenden Optionen werden für <classname>Zend_Validate_InArray</classname>
- unterstützt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>haystack</property></emphasis>: Setzt den Haystack für die
- Prüfung.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>recursive</property></emphasis>: Definiert ob die Prüfung
- rekursiv durchgeführt werden soll. Diese Option ist standardmäßig
- <constant>FALSE</constant>.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>strict</property></emphasis>: Definiert ob die Prüfung
- strikt durchgeführt werden soll. Diese Option ist standardmäßig
- <constant>FALSE</constant>.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.validate.set.in_array.basic">
- <title>Einfache Array Prüfung</title>
- <para>
- Der einfachste Weg ist es, das Array welches durchsucht werden soll, bei der
- Initiierung anzugeben:
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(array('key' => 'value',
- 'otherkey' => 'othervalue'));
- if ($validator->isValid('value')) {
- // Wert gefunden
- } else {
- // Wert nicht gefunden
- }
- ]]></programlisting>
- <para>
- Das verhält sich genauso wie <acronym>PHP</acronym>'s
- <methodname>in_array()</methodname> Methode.
- </para>
- <note>
- <para>
- Standardmäßig ist diese Prüfung nicht strikt noch kann Sie mehrdimensionale Arrays
- prüfen.
- </para>
- </note>
- <para>
- Natürlich kann man das Array gegen das geprüft werden soll auch im Nachhinein durch
- Verwendung der <methodname>setHaystack()</methodname> Methode angegeben werden.
- <methodname>getHaystack()</methodname> gibt das aktuell gesetzte Haystack Array zurück.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray();
- $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));
- if ($validator->isValid('value')) {
- // Wert gefunden
- } else {
- // Wert nicht gefunden
- }
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.validate.set.in_array.strict">
- <title>Strikte Array Prüfung</title>
- <para>
- Wie vorher erwähnt kann man auch eine Strikte Prüfung im Array durchführen.
- Standardmäßig würde kein Unterschied zwischen dem Integerwert <emphasis>0</emphasis>
- und dem String <emphasis>"0"</emphasis> sein. Wenn eine strikte Prüfung durchgeführt
- wird dann wird dieser Unterschied auch geprüft und nur gleiche Typen werden akzeptiert.
- </para>
- <para>
- Eine strikte Prüfung kann auch auf zwei verschiedenen Wegen durchgeführt werden. Bei
- der Initiierung und durch Verwendung einer Methode. Bei der Initiierung muß hierfür ein
- Array mit der folgenden Struktur angegeben werden:
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(
- array(
- 'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
- 'strict' => true
- )
- );
- if ($validator->isValid('value')) {
- // Wert gefunden
- } else {
- // Wert nicht gefunden
- }
- ]]></programlisting>
- <para>
- Der <emphasis>haystack</emphasis> Schlüssel enthält das eigene Array das für die
- Prüfung verwendet wird. Durch das Setzen des <emphasis>script</emphasis> Schlüssels
- auf <constant>TRUE</constant> wird die Prüfung so durchgeführt, das der Typ strikt
- geprüft wird.
- </para>
- <para>
- Natürlich kann man auch die <methodname>setStrict()</methodname> Methode verwenden
- um diese Einstellung im Nachhinein zu ändern und <methodname>getStrict()</methodname>
- um den aktuell gesetzten Status zu erhalten.
- </para>
- <note>
- <para>
- Es ist zu beachten das die <emphasis>strict</emphasis> Einstellung standardmäßig
- <constant>FALSE</constant> ist.
- </para>
- </note>
- </sect3>
- <sect3 id="zend.validate.set.in_array.recursive">
- <title>Rekursive Array Prüfung</title>
- <para>
- Zusätzlich zu <acronym>PHP</acronym>'s <methodname>in_array()</methodname> Methode kann
- diese Prüfung auch verwendet werden um Mehrdimensionale Arrays zu prüfen.
- </para>
- <para>
- Um mehrdimensionale Array zu prüfen muß die <emphasis>recursive</emphasis> Option
- gesetzt werden.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(
- array(
- 'haystack' => array(
- 'firstDimension' => array('key' => 'value',
- 'otherkey' => 'othervalue'),
- 'secondDimension' => array('some' => 'real',
- 'different' => 'key')),
- 'recursive' => true
- )
- );
- if ($validator->isValid('value')) {
- // Wert gefunden
- } else {
- // Wert nicht gefunden
- }
- ]]></programlisting>
- <para>
- Das eigene Array wird das rekursiv geprüft um zu sehen ob der angegebene Wert enthalten
- ist. Zusätzlich kann <methodname>setRecursive()</methodname> verwendet werden um diese
- Option im Nachhinein zu setzen und <methodname>getRecursive()</methodname> um Ihn zu
- erhalten.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(
- array(
- 'firstDimension' => array('key' => 'value',
- 'otherkey' => 'othervalue'),
- 'secondDimension' => array('some' => 'real',
- 'different' => 'key')
- )
- );
- $validator->setRecursive(true);
- if ($validator->isValid('value')) {
- // Wert gefunden
- } else {
- // kein Wert gefunden
- }
- ]]></programlisting>
- <note>
- <title>Standardwert für die Rekursion</title>
- <para>
- Standardmäßig ist die rekursive Prüfung ausgeschaltet.
- </para>
- </note>
- <note>
- <title>Optionsschlüssel im Haystack</title>
- <para>
- Wenn man die Schlüssel '<property>haystack</property>',
- '<property>strict</property>' oder '<property>recursive</property>' im eigenen
- Haystack verwenden, dann muß man diese mit dem <property>haystack</property>
- Schlüssel einhüllen.
- </para>
- </note>
- </sect3>
- </sect2>
|