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

    <para>
        Ce filtre retournera la valeur <constant>NULL</constant> si des critères précis sont rencontrés.
        C'est souvent nécessaire lorsqu'on travaille avec des bases de données et que l'on souhaite une
        valeur <constant>NULL</constant> plutôt qu'un booléen ou tout autre type.
    </para>

    <sect3 id="zend.filter.set.null.default">
        <title>Comportement par défaut de Zend_Filter_Null</title>

        <para>
            Par défaut, ce filtre fonctionne comme la fonction <acronym>PHP</acronym>
            <methodname>empty()</methodname>. Donc si
            <methodname>empty()</methodname> retourne true sur la valeur, alors
            <constant>NULL</constant> sera retourné par ce filtre
        </para>

        <programlisting language="php"><![CDATA[
$filter = new Zend_Filter_Null();
$value  = '';
$result = $filter->filter($value);
// retourne null plutôt que la chaine vide
]]></programlisting>

        <para>
            Ceci signifie qu'en l'absence d'une configuration spéciale,
            <classname>Zend_Filter_Null</classname> accepte tout type en entrée et retourne
            <constant>NULL</constant> dans les mêmes cas que <methodname>empty()</methodname>.
        </para>

        <para>
            Toute autre valeur sera retournée telle quelle, sans aucune modification.
        </para>
    </sect3>

    <sect3 id="zend.filter.set.null.types">
        <title>Changer le comportement de Zend_Filter_Null</title>

        <para>
            Quelques fois ça ne suffit pas de filtrer en se basant sur <methodname>empty()</methodname>. Ainsi,
            <classname>Zend_Filter_Null</classname> permet de déclarer quels types seront convertis.
        </para>

        <para>
            Les types suivants sont gérés:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>booleen</emphasis>: Convertit le booléen
                    <emphasis><constant>FALSE</constant></emphasis> en
                    <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>entier</emphasis>: Convertit l'entier <emphasis>0</emphasis> en
                    <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>tableau_vide</emphasis>: Convertit le <emphasis>tableau</emphasis> vide
                    en <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>chaine</emphasis>: Convertit la chaine vide <emphasis>''</emphasis> en
                    <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>zero</emphasis>: Convertit la chaine zéro
                     (<emphasis>'0'</emphasis>) en <constant>NULL</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>tout</emphasis>: Convertit tous les types cités en <constant>NULL</constant>.
                    (comportement par défaut).
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Il existe plusieurs manières de spécifier les types à filtrer, des constantes, des types ajoutés
            à la suite, des chaines de caractères, un tableau... Voyez les exemples suivants:
        </para>

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

// convertit false et 0 en null
$filter = new Zend_Filter_Null(
    Zend_Filter_Null::BOOLEAN + Zend_Filter_Null::INTEGER
);

// convertit false et 0 en null
$filter = new Zend_Filter_Null( array(
    Zend_Filter_Null::BOOLEAN,
    Zend_Filter_Null::INTEGER
));

// convertit false et 0 en null
$filter = new Zend_Filter_Null(array(
    'boolean',
    'integer',
));
]]></programlisting>

        <para>
            Un objet <classname>Zend_Config</classname> peut aussi être utilisé pour préciser les types.
            La méthode <methodname>setType()</methodname> existe de même.
        </para>
    </sect3>
</sect2>
<!--
vim:se ts=4 sw=4 et:
-->
