Zend_Validate-InArray.xml 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  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.options">
  12. <title>Zend_Validate_InArray でサポートされるオプション</title>
  13. <para>
  14. 下記のオプションが <classname>Zend_Validate_InArray</classname> でサポートされます。
  15. </para>
  16. <itemizedlist>
  17. <listitem>
  18. <para>
  19. <emphasis><property>haystack</property></emphasis>: 検証に対するヘイスタックを設定します。
  20. </para>
  21. </listitem>
  22. <listitem>
  23. <para>
  24. <emphasis><property>recursive</property></emphasis>: 検証が再帰的に行なわれるべきかどうか定義します。
  25. このオプションの既定値は <constant>FALSE</constant> です。
  26. </para>
  27. </listitem>
  28. <listitem>
  29. <para>
  30. <emphasis><property>strict</property></emphasis>: 検証が厳密に行なわれるべきかどうか定義します。
  31. このオプションの既定値は <constant>FALSE</constant> です。
  32. </para>
  33. </listitem>
  34. </itemizedlist>
  35. </sect3>
  36. <sect3 id="zend.validate.set.in_array.basic">
  37. <title>単純な配列の検証</title>
  38. <para>
  39. 最も単純な方法は、初期化の際に検索される配列を与えることがまさにそうです。
  40. </para>
  41. <programlisting language="php"><![CDATA[
  42. $validator = new Zend_Validate_InArray(array('key' => 'value',
  43. 'otherkey' => 'othervalue'));
  44. if ($validator->isValid('value')) {
  45. // 値が見つかりました
  46. } else {
  47. // 値が見つかりません
  48. }
  49. ]]></programlisting>
  50. <para>
  51. これは、ちょうど<acronym>PHP</acronym>の<methodname>in_array()</methodname>
  52. メソッドのようにふるまいます
  53. </para>
  54. <note>
  55. <para>
  56. デフォルトでは、この検証は厳格ではありませんし、
  57. それは多次元配列を検証することができません。
  58. </para>
  59. </note>
  60. <para>
  61. もちろん、<methodname>setHaystack()</methodname>メソッドを用いてその後また、
  62. 検証する配列を与えることができます。
  63. <methodname>getHaystack()</methodname> は、実際に設定されている配列を返します。
  64. </para>
  65. <programlisting language="php"><![CDATA[
  66. $validator = new Zend_Validate_InArray();
  67. $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));
  68. if ($validator->isValid('value')) {
  69. // 値が見つかりました
  70. } else {
  71. // 値が見つかりません
  72. }
  73. ]]></programlisting>
  74. </sect3>
  75. <sect3 id="zend.validate.set.in_array.strict">
  76. <title>厳密な配列の検証</title>
  77. <para>
  78. 上述のように、配列の中で厳密な検証をすることもできます。
  79. デフォルトでは、整数値<emphasis>0</emphasis>と文字列<emphasis>"0"</emphasis>の違いがありません。
  80. 厳密な検証をするときは、この違いも検証されます。そして、同じ型だけが受け入れられます。
  81. </para>
  82. <para>
  83. 厳密な検証は、異なる2つの方法を用いて行なうこともできます。
  84. 初期化で、及びメソッドを用いて。
  85. 初期化では、以下の構造で配列を与えなければなりません。
  86. </para>
  87. <programlisting language="php"><![CDATA[
  88. $validator = new Zend_Validate_InArray(
  89. array(
  90. 'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
  91. 'strict' => true
  92. )
  93. );
  94. if ($validator->isValid('value')) {
  95. // 値が見つかりました
  96. } else {
  97. // 値が見つかりません
  98. }
  99. ]]></programlisting>
  100. <para>
  101. <emphasis>haystack</emphasis>キーは、検証する配列を含みます。
  102. そして<emphasis>strict</emphasis>キーを<constant>TRUE</constant>に設定することにより、
  103. 検証は厳密な型チェックを用いてなされます。
  104. </para>
  105. <para>
  106. もちろん、その後この設定値を変えるために、
  107. <methodname>setStrict()</methodname>メソッドを使うこともできます。
  108. また、<methodname>getStrict()</methodname> で実際に設定されている内容を取得することもできます。
  109. </para>
  110. <note>
  111. <para>
  112. <emphasis>strict</emphasis>設定は、
  113. デフォルトでは<constant>FALSE</constant>であることに注意してください。
  114. </para>
  115. </note>
  116. </sect3>
  117. <sect3 id="zend.validate.set.in_array.recursive">
  118. <title>再帰的な配列の検証</title>
  119. <para>
  120. <acronym>PHP</acronym>の<methodname>in_array()</methodname>メソッド
  121. に加えて、このバリデータは、多次元配列を検証するために使うこともできます。
  122. </para>
  123. <para>
  124. 多次元配列を検証するためには、
  125. <emphasis>recursive</emphasis>オプションを設定しなければなりません。
  126. </para>
  127. <programlisting language="php"><![CDATA[
  128. $validator = new Zend_Validate_InArray(
  129. array(
  130. 'haystack' => array(
  131. 'firstDimension' => array('key' => 'value',
  132. 'otherkey' => 'othervalue'),
  133. 'secondDimension' => array('some' => 'real',
  134. 'different' => 'key')),
  135. 'recursive' => true
  136. )
  137. );
  138. if ($validator->isValid('value')) {
  139. // 値が見つかりました
  140. } else {
  141. // 値が見つかりません
  142. }
  143. ]]></programlisting>
  144. <para>
  145. それにより、任意の値が含まれるかどうか配列が再帰的に検証されます。
  146. さらに、<methodname>setRecursive()</methodname> を使って後からこのオプションを設定したり
  147. <methodname>getRecursive()</methodname> で設定を取得したりすることもできます。
  148. </para>
  149. <programlisting language="php"><![CDATA[
  150. $validator = new Zend_Validate_InArray(
  151. array(
  152. 'firstDimension' => array('key' => 'value',
  153. 'otherkey' => 'othervalue'),
  154. 'secondDimension' => array('some' => 'real',
  155. 'different' => 'key')
  156. )
  157. );
  158. $validator->setRecursive(true);
  159. if ($validator->isValid('value')) {
  160. // 値が見つかりました
  161. } else {
  162. // 値が見つかりません
  163. }
  164. ]]></programlisting>
  165. <note>
  166. <title>再帰的な検証のデフォルト設定</title>
  167. <para>
  168. デフォルトでは再帰的な検証は無効となります。
  169. </para>
  170. </note>
  171. <note>
  172. <title>配列内でのオプションキー</title>
  173. <para>
  174. '<property>haystack</property>' や
  175. '<property>strict</property>'、'<property>recursive</property>'
  176. といったキーを配列内で使う場合は、<property>haystack</property>
  177. キーをラップしなければなりません。
  178. </para>
  179. </note>
  180. </sect3>
  181. </sect2>
  182. <!--
  183. vim:se ts=4 sw=4 et:
  184. -->