Zend_Validate-InArray.xml 4.2 KB

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