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

    <para>
        Dieser Filter ändert die angegebene Eingabe so dass Sie <constant>NULL</constant> ist wenn
        Sie spezifischen Kriterien entspricht. Das ist oft notwendig wenn man mit Datenbanken
        arbeitet und einen <constant>NULL</constant> Wert statt einem Boolean oder irgendeinem
        anderen Typ haben will.
    </para>

    <sect3 id="zend.filter.set.null.default">
        <title>Standardverhalten für Zend_Filter_Null</title>

        <para>
            Standardmäßig arbeitet dieser Filter wie <acronym>PHP</acronym>'s
            <methodname>empty()</methodname> Methode; in anderen Worten, wenn
            <methodname>empty()</methodname> ein boolsches <constant>TRUE</constant> zurückgibt,
            dann wird ein <constant>NULL</constant> Wert zurückgegeben.
        </para>

        <programlisting language="php"><![CDATA[
$filter = new Zend_Filter_Null();
$value  = '';
$result = $filter->filter($value);
// Gibt null statt einem leeren String zurück
]]></programlisting>

        <para>
            Das bedeutet das <classname>Zend_Filter_Null</classname>, ohne die Angabe irgendeiner
            Konfiguration, alle Eingabetypen akteptiert und in den selben Fällen
            <constant>NULL</constant> zurückgibt wie <methodname>empty()</methodname>.
        </para>

        <para>
            Jeder andere Wert ist zurückgegeben wie er ist, ohne irgendwelche Änderungen.
        </para>
    </sect3>

    <sect3 id="zend.filter.set.null.types">
        <title>Ändern des Verhaltens von Zend_Filter_Null</title>

        <para>
            Manchmal ist es nicht genug basieren auf <methodname>empty()</methodname> zu filtern.
            Hierfür erlaubt es <classname>Zend_Filter_Null</classname> die Typen zu konfigurieren
            welche konvertiert werden und jene die nicht konvertiert werden.
        </para>

        <para>
            Die folgenden Typen können behandelt werden:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>boolean</emphasis>: Konvertiert einen boolschen
                    <emphasis><constant>FALSE</constant></emphasis> Wert zu
                    <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>integer</emphasis>: Konvertiert einen Integer <emphasis>0</emphasis>
                    Wert zu <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>empty_array</emphasis>: Konvertiert ein leeres
                    <emphasis>Array</emphasis> zu <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>string</emphasis>: Konvertiert einen leeren String
                    <emphasis>''</emphasis> zu <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>zero</emphasis>: Konvertiert einen String der eine einzelne Null
                    Ziffer enthält (<emphasis>'0'</emphasis>) zu <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>all</emphasis>: Konvertiert alle obigen Typen zu
                    <constant>NULL</constant>. (Das ist das Standardverhalten.)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Es gibt verschiedene Wege um zu wählen welche der obigen Typen gefiltert werden und
            welche nicht. Man kann einen oder mehrere Typen angeben und diese addieren, man kann
            ein Array angeben, man kann Konstanten verwenden, oder man kann einen textuellen
            String angeben. Siehe die folgenden Beispiele:
        </para>

        <programlisting language="php"><![CDATA[
// Konvertiert false zu null
$filter = new Zend_Filter_Null(Zend_Filter_Null::BOOLEAN);

// Konvertiert false und 0 zu null
$filter = new Zend_Filter_Null(
    Zend_Filter_Null::BOOLEAN + Zend_Filter_Null::INTEGER
);

// Konvertiert false und 0 zu null
$filter = new Zend_Filter_Null( array(
    Zend_Filter_Null::BOOLEAN,
    Zend_Filter_Null::INTEGER
));

// Konvertiert false und 0 zu null
$filter = new Zend_Filter_Null(array(
    'boolean',
    'integer',
));
]]></programlisting>

        <para>
            Man kann auch eine Instanz von <classname>Zend_Config</classname> angeben um die
            gewünschten Typen zu setzen. Um Typen im nachhinein zu setzen kann
            <methodname>setType()</methodname> verwendet werden.
        </para>
    </sect3>
</sect2>
