PHP数组不起作用,多个

时间:2012-10-22 00:05:15

标签: php arrays

这是我的代码:

function prepare_machine($variables)
{
        foreach ($variables AS $varname => $vartype)
        {
                if (isset($_REQUEST[$varname]))
                {
                        $value = $_REQUEST[$varname];
                        return do_clean($value, $vartype);
                }
                else
                        exit;
        }
}

它被称为:

prepare_machine(array('order_by_time' => TYPE_BOOLEAN));

一切正常,但如果你在数组中有多个东西,例如;

prepare_machine(array('order_by_time' => TYPE_BOOLEAN, 'order_by_date' => TYPE_BOOLEAN));

它只对第一个做任何事情。

有人可以看到我的代码有什么问题吗?

由于

2 个答案:

答案 0 :(得分:1)

当您在内循环中找到匹配项时,您正在执行return ...。这就是为什么它只处理一个。

此外,您应该使用array_key_exists($varname, $_REQUEST),因为如果isset($_REQUEST[$varname])为空,$_REQUEST[$varname]将失败。

答案 1 :(得分:0)

return返回您提供的任何内容,然后退出该函数。您需要以某种方式更改函数,以便在处理完所有变量后仅return