| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect2 id="zend.validate.set.in_array">
- <title>InArray(日本語)</title>
- <para>
- 任意の値が配列の中で含まれるかどうか、
- <classname>Zend_Validate_InArray</classname>で検証できます。
- それは、多次元配列を確認することもできます。
- </para>
- <sect3 id="zend.validate.set.in_array.options">
- <title>Zend_Validate_InArray でサポートされるオプション</title>
- <para>
- 下記のオプションが <classname>Zend_Validate_InArray</classname> でサポートされます。
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>haystack</property></emphasis>: 検証に対するヘイスタックを設定します。
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>recursive</property></emphasis>: 検証が再帰的に行なわれるべきかどうか定義します。
- このオプションの既定値は <constant>FALSE</constant> です。
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>strict</property></emphasis>: 検証が厳密に行なわれるべきかどうか定義します。
- このオプションの既定値は <constant>FALSE</constant> です。
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.validate.set.in_array.basic">
- <title>単純な配列の検証</title>
- <para>
- 最も単純な方法は、初期化の際に検索される配列を与えることがまさにそうです。
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(array('key' => 'value',
- 'otherkey' => 'othervalue'));
- if ($validator->isValid('value')) {
- // 値が見つかりました
- } else {
- // 値が見つかりません
- }
- ]]></programlisting>
- <para>
- これは、ちょうど<acronym>PHP</acronym>の<methodname>in_array()</methodname>
- メソッドのようにふるまいます
- </para>
- <note>
- <para>
- デフォルトでは、この検証は厳格ではありませんし、
- それは多次元配列を検証することができません。
- </para>
- </note>
- <para>
- もちろん、<methodname>setHaystack()</methodname>メソッドを用いてその後また、
- 検証する配列を与えることができます。
- <methodname>getHaystack()</methodname> は、実際に設定されている配列を返します。
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray();
- $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));
- if ($validator->isValid('value')) {
- // 値が見つかりました
- } else {
- // 値が見つかりません
- }
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.validate.set.in_array.strict">
- <title>厳密な配列の検証</title>
- <para>
- 上述のように、配列の中で厳密な検証をすることもできます。
- デフォルトでは、整数値<emphasis>0</emphasis>と文字列<emphasis>"0"</emphasis>の違いがありません。
- 厳密な検証をするときは、この違いも検証されます。そして、同じ型だけが受け入れられます。
- </para>
- <para>
- 厳密な検証は、異なる2つの方法を用いて行なうこともできます。
- 初期化で、及びメソッドを用いて。
- 初期化では、以下の構造で配列を与えなければなりません。
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(
- array(
- 'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
- 'strict' => true
- )
- );
- if ($validator->isValid('value')) {
- // 値が見つかりました
- } else {
- // 値が見つかりません
- }
- ]]></programlisting>
- <para>
- <emphasis>haystack</emphasis>キーは、検証する配列を含みます。
- そして<emphasis>strict</emphasis>キーを<constant>TRUE</constant>に設定することにより、
- 検証は厳密な型チェックを用いてなされます。
- </para>
- <para>
- もちろん、その後この設定値を変えるために、
- <methodname>setStrict()</methodname>メソッドを使うこともできます。
- また、<methodname>getStrict()</methodname> で実際に設定されている内容を取得することもできます。
- </para>
- <note>
- <para>
- <emphasis>strict</emphasis>設定は、
- デフォルトでは<constant>FALSE</constant>であることに注意してください。
- </para>
- </note>
- </sect3>
- <sect3 id="zend.validate.set.in_array.recursive">
- <title>再帰的な配列の検証</title>
- <para>
- <acronym>PHP</acronym>の<methodname>in_array()</methodname>メソッド
- に加えて、このバリデータは、多次元配列を検証するために使うこともできます。
- </para>
- <para>
- 多次元配列を検証するためには、
- <emphasis>recursive</emphasis>オプションを設定しなければなりません。
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(
- array(
- 'haystack' => array(
- 'firstDimension' => array('key' => 'value',
- 'otherkey' => 'othervalue'),
- 'secondDimension' => array('some' => 'real',
- 'different' => 'key')),
- 'recursive' => true
- )
- );
- if ($validator->isValid('value')) {
- // 値が見つかりました
- } else {
- // 値が見つかりません
- }
- ]]></programlisting>
- <para>
- それにより、任意の値が含まれるかどうか配列が再帰的に検証されます。
- さらに、<methodname>setRecursive()</methodname> を使って後からこのオプションを設定したり
- <methodname>getRecursive()</methodname> で設定を取得したりすることもできます。
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_InArray(
- array(
- 'firstDimension' => array('key' => 'value',
- 'otherkey' => 'othervalue'),
- 'secondDimension' => array('some' => 'real',
- 'different' => 'key')
- )
- );
- $validator->setRecursive(true);
- if ($validator->isValid('value')) {
- // 値が見つかりました
- } else {
- // 値が見つかりません
- }
- ]]></programlisting>
- <note>
- <title>再帰的な検証のデフォルト設定</title>
- <para>
- デフォルトでは再帰的な検証は無効となります。
- </para>
- </note>
- <note>
- <title>配列内でのオプションキー</title>
- <para>
- '<property>haystack</property>' や
- '<property>strict</property>'、'<property>recursive</property>'
- といったキーを配列内で使う場合は、<property>haystack</property>
- キーをラップしなければなりません。
- </para>
- </note>
- </sect3>
- </sect2>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|