11.2. 过滤器链
上一页 | 第 11 章 Zend_Filter | 下一页

## 11.2. 过滤器链

通常，多个过滤器可以以一个特定的顺序应用到某个值上。例如，登录表单的用户名，应为英文字符且小写。`Zend_Filter`提供了一个简单的方法，使过滤器可以链接在一起。下面的代码描述了怎样把2个过滤器链接起来且应用到提交上来的用户名值上：

    <?php
    // Provides filter chaining capability
    require_once 'Zend/Filter.php';

    // Filters needed for the example
    require_once 'Zend/Filter/Alpha.php';
    require_once 'Zend/Filter/StringToLower.php';

    // Create a filter chain and add filters to the chain
    $filterChain = new Zend_Filter();
    $filterChain->addFilter(new Zend_Filter_Alpha())
                ->addFilter(new Zend_Filter_StringToLower());

    // Filter the username
    $username = $filterChain->filter($_POST['username']);

过滤器按照他们被添加到`Zend_Filter`中去的顺序依次执行。上面的例子中，用户名首先被移除任何非英文字母的字符，然后将所有大写字符转化为小写字符。

任何实现了`Zend_Filter_Interface`接口的，都可被添加到过滤器链中。

上一页 | 上一级 | 下一页
第 11 章 Zend_Filter | 起始页 | 11.3. 编写过滤器