2
0

Zend_Validate-InArray.xml 6.6 KB

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