<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<!-- EN-Revision: 24249 -->
<sect2 id="zend.filter.set.null">
    <title>Null(日本語)</title>

    <para>
        もし指定の基準を満たす場合、
        このフィルタは与えられた入力を <constant>NULL</constant>に変更します。
        データベースとともに作業するとき、これはしばしば必要です
        そして、ブールや他のあらゆるタイプの代わりに <constant>NULL</constant>値を持つことを望みます。
    </para>

    <sect3 id="zend.filter.set.null.options">
        <title>Zend_Filter_Null でサポートされるオプション</title>

        <para>
            <classname>Zend_Filter_Null</classname> では、下記のオプションがサポートされます。
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis><property>type</property></emphasis>: サポートされるべき変数の型
                </para>
            </listitem>
        </itemizedlist>
    </sect3>

    <sect3 id="zend.filter.set.null.default">
        <title>Zend_Filter_Null の既定の振る舞い</title>

        <para>
            デフォルトではこのフィルタは<acronym>PHP</acronym>の
            <methodname>empty()</methodname>メソッドのように動作します。
            言い換えると、もし<methodname>empty()</methodname>がブールの <constant>TRUE</constant> を返す場合、
            <constant>NULL</constant>値が返されます。
        </para>

        <programlisting language="php"><![CDATA[
$filter = new Zend_Filter_Null();
$value  = '';
$result = $filter->filter($value);
// 空文字列の代わりに null を返します
]]></programlisting>

        <para>
            これは、何の設定もなしに、
            <classname>Zend_Filter_Null</classname>は全ての入力を受け付けて、
            <methodname>empty()</methodname>と同じ場合に
            <constant>NULL</constant>を返すことを意味します。
        </para>

        <para>
            他の値ではいずれも変更無しにそのまま返されます。
        </para>
    </sect3>

    <sect3 id="zend.filter.set.null.types">
        <title>Zend_Filter_Null の振る舞いの変更</title>

        <para>
            しばしば、<methodname>empty()</methodname>に基づくフィルタでは十分ではありません。
            そのため、<classname>Zend_Filter_Null</classname>では、
            いずれのタイプが変換されるか否か設定できます。
        </para>

        <para>
            下記のタイプが操作できます。
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>boolean</emphasis>: ブールの
                    <emphasis><constant>FALSE</constant></emphasis> 値を
                    <constant>NULL</constant> に変換します。
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>integer</emphasis>: 整数値の <emphasis>0</emphasis> を
                    <constant>NULL</constant>.に変換します。
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>empty_array</emphasis>: 空の <emphasis>array</emphasis> を
                    <constant>NULL</constant>.に変換します。
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>string</emphasis>: 空文字列 <emphasis>''</emphasis> を
                    <constant>NULL</constant>.に変換します。
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>zero</emphasis>: 単一の文字、ゼロ (<emphasis>'0'</emphasis>)
                    を含む文字列を <constant>NULL</constant>.に変換します。
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>all</emphasis>: 上記のタイプ全てを
                    <constant>NULL</constant>.に変換します。
                    （これが既定の振る舞いです）
                </para>
            </listitem>
        </itemizedlist>

        <para>
            上記のタイプのうちのいずれをフィルタするかを選択する方法が、いくつかあります。
            １つまたは複数のタイプを与えて、それに追加できます。
            配列を与えたり、定数を使えます。
            または、原文の文字列を与えられます。
            下記の例をご覧ください。
        </para>

        <programlisting language="php"><![CDATA[
// false を null に変換
$filter = new Zend_Filter_Null(Zend_Filter_Null::BOOLEAN);

// false 及び 0 を null に変換
$filter = new Zend_Filter_Null(
    Zend_Filter_Null::BOOLEAN + Zend_Filter_Null::INTEGER
);

// false 及び 0 を null に変換
$filter = new Zend_Filter_Null( array(
    Zend_Filter_Null::BOOLEAN,
    Zend_Filter_Null::INTEGER
));

// false 及び 0 を null に変換
$filter = new Zend_Filter_Null(array(
    'boolean',
    'integer',
));
]]></programlisting>

        <para>
            希望のタイプをセットするために、
            <classname>Zend_Config</classname> のインスタンスを与えることもできます。
            タイプをセットするには、後で <methodname>setType()</methodname> を使います。
        </para>
    </sect3>
</sect2>
<!--
vim:se ts=4 sw=4 et:
-->
