Zend_Validate-InArray.xml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 17894 -->
  4. <sect2 id="zend.validate.set.in_array">
  5. <title>InArray</title>
  6. <para>
  7. 任意の値が配列の中で含まれるかどうか、
  8. <classname>Zend_Validate_InArray</classname>で検証できます。
  9. それは、多次元配列を確認することもできます。
  10. </para>
  11. <sect3 id="zend.validate.set.in_array.basic">
  12. <title>単純な配列の検証</title>
  13. <para>
  14. 最も単純な方法は、初期化のさいに検索される配列を与えることがまさにそうです。
  15. </para>
  16. <programlisting language="php"><![CDATA[
  17. $validator = new Zend_Validate_InArray(array('key' => 'value',
  18. 'otherkey' => 'othervalue'));
  19. if ($validator->isValid('value')) {
  20. // 値が見つかりました
  21. } else {
  22. // 値が見つかりません
  23. }
  24. ]]></programlisting>
  25. <para>
  26. これは、ちょうど<acronym>PHP</acronym>の<methodname>in_array()</methodname>
  27. メソッドのようにふるまいます
  28. </para>
  29. <note>
  30. <para>
  31. デフォルトでは、この検証は厳格ではありませんし、
  32. それは多次元配列を検証することができません。
  33. </para>
  34. </note>
  35. <para>
  36. もちろん、<methodname>setHaystack()</methodname>メソッドを用いてその後また、
  37. 検証する配列を与えることができます。
  38. </para>
  39. <programlisting language="php"><![CDATA[
  40. $validator = new Zend_Validate_InArray();
  41. $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));
  42. if ($validator->isValid('value')) {
  43. // 値が見つかりました
  44. } else {
  45. // 値が見つかりません
  46. }
  47. ]]></programlisting>
  48. </sect3>
  49. <sect3 id="zend.validate.set.in_array.strict">
  50. <title>厳密な配列の検証</title>
  51. <para>
  52. 上述のように、配列の中で厳密な検証をすることもできます。
  53. デフォルトでは、整数値<emphasis>0</emphasis>と文字列<emphasis>"0"</emphasis>の違いがありません。
  54. 厳密な検証をするときは、この違いも検証されます。そして、同じ型だけが受け入れられます。
  55. </para>
  56. <para>
  57. 厳密な検証は、異なる2つの方法を用いて行なうこともできます。
  58. 初期化で、及びメソッドを用いて。
  59. 初期化では、以下の構造で配列を与えなければなりません。
  60. </para>
  61. <programlisting language="php"><![CDATA[
  62. $validator = new Zend_Validate_InArray(
  63. array(
  64. 'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
  65. 'strict' => true
  66. )
  67. );
  68. if ($validator->isValid('value')) {
  69. // 値が見つかりました
  70. } else {
  71. // 値が見つかりません
  72. }
  73. ]]></programlisting>
  74. <para>
  75. <emphasis>haystack</emphasis>キーは、検証する配列を含みます。
  76. そして<emphasis>strict</emphasis>キーを<constant>TRUE</constant>に設定することにより、
  77. 検証は厳密な型チェックを用いてなされます。
  78. </para>
  79. <para>
  80. もちろん、その後この設定値を変えるために、
  81. <methodname>setStrict()</methodname>メソッドを使うこともできます。
  82. </para>
  83. <note>
  84. <para>
  85. <emphasis>strict</emphasis>設定は、
  86. デフォルトでは<constant>FALSE</constant>であることに注意してください。
  87. </para>
  88. </note>
  89. </sect3>
  90. <sect3 id="zend.validate.set.in_array.recursive">
  91. <title>再帰的な配列の検証</title>
  92. <para>
  93. <acronym>PHP</acronym>の<methodname>in_array()</methodname>メソッド
  94. に加えて、このバリデータは、多次元配列を検証するために使うこともできます。
  95. </para>
  96. <para>
  97. 多次元配列を検証するためには、
  98. <emphasis>recursive</emphasis>オプションを設定しなければなりません。
  99. </para>
  100. <programlisting language="php"><![CDATA[
  101. $validator = new Zend_Validate_InArray(
  102. array(
  103. 'haystack' => array(
  104. 'firstDimension' => array('key' => 'value',
  105. 'otherkey' => 'othervalue'),
  106. 'secondDimension' => array('some' => 'real',
  107. 'different' => 'key')),
  108. 'recursive' => true
  109. )
  110. );
  111. if ($validator->isValid('value')) {
  112. // 値が見つかりました
  113. } else {
  114. // 値が見つかりません
  115. }
  116. ]]></programlisting>
  117. <para>
  118. それにより、任意の値が含まれるかどうか配列が再帰的に検証されます。
  119. </para>
  120. <note>
  121. <para>
  122. デフォルトでは再帰的な検証は無効であることに注意してください。
  123. </para>
  124. </note>
  125. </sect3>
  126. </sect2>
  127. <!--
  128. vim:se ts=4 sw=4 et:
  129. -->