| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- <?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> vous permet de valider qu'une entrée est bien présente
- dans un tableau. Ceci fonctionne aussi avec des tableaux multidimensionnels.
- </para>
- <sect3 id="zend.validate.set.in_array.options">
- <title>Options supportées par Zend_Validate_InArray</title>
- <para>
- Les options suivantes sont supportées par
- <classname>Zend_Validate_InArray</classname> :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>haystack</property></emphasis> : spécifie le tableau
- pour la validation.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>recursive</property></emphasis> : définit si la
- validation doit être recursive. Cette option vaut <constant>FALSE</constant>
- par défaut.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>strict</property></emphasis> : définit si la validation
- doit être strict (même type). Cette option vaut <constant>FALSE</constant> par
- défaut.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.validate.set.in_array.basic">
- <title>Validation tableau simple</title>
- <para>
- Passez simplement un tableau dans lequel rechercher une valeur:
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(array('key' => 'value',
- 'otherkey' => 'othervalue'));
- if ($validator->isValid('value')) {
- // value trouvée
- } else {
- // value non trouvée
- }
- ]]></programlisting>
- <para>
- C'est le comportement exact de la fonction PHP <methodname>in_array()</methodname>.
- </para>
- <note>
- <para>
- Par défaut la validation est non stricte et ne valide pas les multiples dimensions.
- </para>
- </note>
- <para>
- Bien sûr vous pouvez fournir le tableau à valider plus tard en utilisant la méthode
- <methodname>setHaystack()</methodname>. La méthode
- <methodname>getHaystack()</methodname> retourne le tableau actuellement fourni.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray();
- $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));
- if ($validator->isValid('value')) {
- // valeur trouvée
- } else {
- // valeur non trouvée
- }
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.validate.set.in_array.strict">
- <title>Validation tableau stricte</title>
- <para>
- Il est possible d'effectuer une validation stricte des données dans le tableau. Par défaut, il n'y aura aucune
- différence entre l'entier <emphasis>0</emphasis> et la chaine <emphasis>"0"</emphasis>. La validation stricte
- fera cette différence.
- </para>
- <para>
- Pour spécifier une validation stricte à l'instanciation de l'objet, agissez comme suit :
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(
- array(
- 'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
- 'strict' => true
- )
- );
- if ($validator->isValid('value')) {
- // valeur trouvée
- } else {
- // valeur non trouvée
- }
- ]]></programlisting>
- <para>
- La clé <emphasis>haystack</emphasis> contient le tableau dans lequel valider. En mettant la clé
- <emphasis>strict</emphasis> à <constant>TRUE</constant>, la validation sera stricte (valeur et type).
- </para>
- <para>
- Bien sûr vous pouvez la méthode <methodname>setStrict()</methodname> pour changer ce
- réglage et la méthode <methodname>getStrict()</methodname> vous retournera le réglage
- en cours.
- </para>
- <note>
- <para>
- Notez que par défaut, <emphasis>strict</emphasis> a la valeur
- <constant>FALSE</constant>.
- </para>
- </note>
- </sect3>
- <sect3 id="zend.validate.set.in_array.recursive">
- <title>Validation de tableaux récursifs</title>
- <para>
- En plus de la validation type <acronym>PHP</acronym> <methodname>in_array()</methodname>, ce validateur peut
- aussi être utilisé pour valider des tableaux à plusieurs dimensions.
- </para>
- <para>
- Pour cela, utilisez l'option <emphasis>recursive</emphasis>.
- </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')) {
- // value trouvée
- } else {
- // value non trouvée
- }
- ]]></programlisting>
- <para>
- Votre tableau sera parcouru récursivement à la recherche de votre valeur. De plus
- vous pouvez utiliser la méthode <methodname>setRecursive()</methodname> pour
- paramétrer cette option plus tard et la méthode
- <methodname>getRecursive()</methodname> pour la retrouver.
- </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')) {
- // valeur trouvée
- } else {
- // valeur non trouvée
- }
- ]]></programlisting>
- <note>
- <title>Réglage par défaut pour la récursivité</title>
- <para>
- Par défaut, la récursivité n'est pas activée.
- </para>
- </note>
- <note>
- <title>Options pour la "haystack"</title>
- <para>
- Lorsque vous utilisez les clés <property>haystack</property>,
- <property>strict</property> ou <property>recursive</property> à l'intérieur
- de votre pile, vous devez alors envelopper la clé <property>haystack</property>.
- </para>
- </note>
- </sect3>
- </sect2>
|