2
0

Zend_Validate-InArray.xml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17894 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.in_array">
  5. <title>InArray</title>
  6. <para>
  7. <classname>Zend_Validate_InArray</classname> vous permet de valider qu'une entrée est bien présente
  8. dans un tableau. Ceci fonctionne aussi avec des tableau multidimensionnels.
  9. </para>
  10. <sect3 id="zend.validate.set.in_array.basic">
  11. <title>Validation tableau simple</title>
  12. <para>
  13. Passez simplement un tableau dans lequel rechercher une valeur:
  14. </para>
  15. <programlisting language="php"><![CDATA[
  16. $validator = new Zend_Validate_InArray(array('key' => 'value',
  17. 'otherkey' => 'othervalue'));
  18. if ($validator->isValid('value')) {
  19. // value trouvée
  20. } else {
  21. // value non trouvée
  22. }
  23. ]]></programlisting>
  24. <para>
  25. C'est le comportement exact de la fonction PHP <methodname>in_array()</methodname>.
  26. </para>
  27. <note>
  28. <para>
  29. Par défaut la validation est non stricte et ne valide pas les multiple dimensions.
  30. </para>
  31. </note>
  32. <para>
  33. Notez que <methodname>setHaystack()</methodname> est aussi disponible.
  34. </para>
  35. <programlisting language="php"><![CDATA[
  36. $validator = new Zend_Validate_InArray();
  37. $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));
  38. if ($validator->isValid('value')) {
  39. // value trouvée
  40. } else {
  41. // value non trouvée
  42. }
  43. ]]></programlisting>
  44. </sect3>
  45. <sect3 id="zend.validate.set.in_array.strict">
  46. <title>Validation tableau stricte</title>
  47. <para>
  48. Il est possible d'effectuer une validation stricte des données dans le tableau. Par défaut, il n'y aura aucune
  49. différence entre l'entier <emphasis>0</emphasis> et la chaine <emphasis>"0"</emphasis>. La validation stricte
  50. fera cette différence.
  51. </para>
  52. <para>
  53. Pour spécifier une validation stricte à l'instanciation de l'objet, agissez comme suit:
  54. </para>
  55. <programlisting language="php"><![CDATA[
  56. $validator = new Zend_Validate_InArray(
  57. array(
  58. 'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
  59. 'strict' => true
  60. )
  61. );
  62. if ($validator->isValid('value')) {
  63. // value trouvée
  64. } else {
  65. // value non trouvée
  66. }
  67. ]]></programlisting>
  68. <para>
  69. La clé <emphasis>haystack</emphasis> contient le tableau dans lequel valider. En mettant la clé
  70. <emphasis>strict</emphasis> à <constant>TRUE</constant>, la validation sera stricte (valeur et type).
  71. </para>
  72. <para>
  73. La méthode <methodname>setStrict()</methodname> est aussi disponible.
  74. </para>
  75. <note>
  76. <para>
  77. Notez que par défaut, <emphasis>strict</emphasis> a la valeur
  78. <constant>FALSE</constant>.
  79. </para>
  80. </note>
  81. </sect3>
  82. <sect3 id="zend.validate.set.in_array.recursive">
  83. <title>Validation de tableaux recursifs</title>
  84. <para>
  85. En plus de la validation type <acronym>PHP</acronym> <methodname>in_array()</methodname>, ce validateur peut
  86. aussi être utilisé pour valider des tableaux à plusieurs dimensions.
  87. </para>
  88. <para>
  89. Pour celà, utilisez l'option <emphasis>recursive</emphasis>.
  90. </para>
  91. <programlisting language="php"><![CDATA[
  92. $validator = new Zend_Validate_InArray(
  93. array(
  94. 'haystack' => array(
  95. 'firstDimension' => array('key' => 'value',
  96. 'otherkey' => 'othervalue'),
  97. 'secondDimension' => array('some' => 'real',
  98. 'different' => 'key')),
  99. 'recursive' => true
  100. )
  101. );
  102. if ($validator->isValid('value')) {
  103. // value trouvée
  104. } else {
  105. // value non trouvée
  106. }
  107. ]]></programlisting>
  108. <para>
  109. Votre tableau sera parcouru récursivement à la recherche de votre valeur.
  110. </para>
  111. <note>
  112. <para>
  113. Par défaut, la récursivité n'est pas activée.
  114. </para>
  115. </note>
  116. </sect3>
  117. </sect2>
  118. <!--
  119. vim:se ts=4 sw=4 et:
  120. -->