2
0

Zend_Validate-InArray.xml 7.7 KB

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