1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 21243 -->
4 <sect2 id="zend.validate.set.in_array">
10 <classname>Zend_Validate_InArray</classname>で検証できます。
11 それは、多次元配列を確認することもできます。
14 <!-- TODO : to be translated -->
15 <sect3 id="zend.validate.set.in_array.options">
16 <title>Supported options for Zend_Validate_InArray</title>
19 The following options are supported for <classname>Zend_Validate_InArray</classname>:
25 <emphasis><property>haystack</property></emphasis>: Sets the haystack for the
32 <emphasis><property>recursive</property></emphasis>: Defines if the validation
33 should be done recursive. This option defaults to <constant>FALSE</constant>.
39 <emphasis><property>strict</property></emphasis>: Defines if the validation
40 should be done strict. This option defaults to <constant>FALSE</constant>.
46 <sect3 id="zend.validate.set.in_array.basic">
47 <title>単純な配列の検証</title>
50 最も単純な方法は、初期化の際に検索される配列を与えることがまさにそうです。
53 <programlisting language="php"><![CDATA[
54 $validator = new Zend_Validate_InArray(array('key' => 'value',
55 'otherkey' => 'othervalue'));
56 if ($validator->isValid('value')) {
64 これは、ちょうど<acronym>PHP</acronym>の<methodname>in_array()</methodname>
70 デフォルトでは、この検証は厳格ではありませんし、
71 それは多次元配列を検証することができません。
76 もちろん、<methodname>setHaystack()</methodname>メソッドを用いてその後また、
78 <methodname>getHaystack()</methodname> は、実際に設定されている配列を返します。
81 <programlisting language="php"><![CDATA[
82 $validator = new Zend_Validate_InArray();
83 $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));
85 if ($validator->isValid('value')) {
93 <sect3 id="zend.validate.set.in_array.strict">
94 <title>厳密な配列の検証</title>
97 上述のように、配列の中で厳密な検証をすることもできます。
98 デフォルトでは、整数値<emphasis>0</emphasis>と文字列<emphasis>"0"</emphasis>の違いがありません。
99 厳密な検証をするときは、この違いも検証されます。そして、同じ型だけが受け入れられます。
103 厳密な検証は、異なる2つの方法を用いて行なうこともできます。
105 初期化では、以下の構造で配列を与えなければなりません。
108 <programlisting language="php"><![CDATA[
109 $validator = new Zend_Validate_InArray(
111 'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
116 if ($validator->isValid('value')) {
124 <emphasis>haystack</emphasis>キーは、検証する配列を含みます。
125 そして<emphasis>strict</emphasis>キーを<constant>TRUE</constant>に設定することにより、
126 検証は厳密な型チェックを用いてなされます。
130 もちろん、その後この設定値を変えるために、
131 <methodname>setStrict()</methodname>メソッドを使うこともできます。
132 また、<methodname>getStrict()</methodname> で実際に設定されている内容を取得することもできます。
137 <emphasis>strict</emphasis>設定は、
138 デフォルトでは<constant>FALSE</constant>であることに注意してください。
143 <sect3 id="zend.validate.set.in_array.recursive">
144 <title>再帰的な配列の検証</title>
147 <acronym>PHP</acronym>の<methodname>in_array()</methodname>メソッド
148 に加えて、このバリデータは、多次元配列を検証するために使うこともできます。
153 <emphasis>recursive</emphasis>オプションを設定しなければなりません。
156 <programlisting language="php"><![CDATA[
157 $validator = new Zend_Validate_InArray(
160 'firstDimension' => array('key' => 'value',
161 'otherkey' => 'othervalue'),
162 'secondDimension' => array('some' => 'real',
163 'different' => 'key')),
168 if ($validator->isValid('value')) {
176 それにより、任意の値が含まれるかどうか配列が再帰的に検証されます。
177 さらに、<methodname>setRecursive()</methodname> を使って後からこのオプションを設定したり
178 <methodname>getRecursive()</methodname> で設定を取得したりすることもできます。
181 <programlisting language="php"><![CDATA[
182 $validator = new Zend_Validate_InArray(
184 'firstDimension' => array('key' => 'value',
185 'otherkey' => 'othervalue'),
186 'secondDimension' => array('some' => 'real',
187 'different' => 'key')
190 $validator->setRecursive(true);
192 if ($validator->isValid('value')) {
200 <title>再帰的な検証のデフォルト設定</title>
203 デフォルトでは再帰的な検証は無効となります。
208 <title>配列内でのオプションキー</title>
211 '<property>haystack</property>' や
212 '<property>strict</property>'、'<property>recursive</property>'
213 といったキーを配列内で使う場合は、<property>haystack</property>