0

我想忽略过滤器中的大小写,我的代码:

if (strtolower(isset($filterObject['name'])) && null !== strtolower(($filterObject['name']))) {
    $queryFilter->addStringFilter("name", ($filterObject['name']));
}
4

1 回答 1

1

如果你想通过小写对象来忽略 addStringFilter 的大小写敏感性,你只需要使用 strtolower($filterObject['name'])。strtolower 将给定的字符串小写。

在那张纸条上,您在 isset 函数结果上使用 strtolower,它不会在那里做任何事情(因为 isset 不返回任何字符串)。

因此,您应该将源代码更改为:

if (isset($filterObject['name']) && null !==  strtolower(($filterObject['name']))) 
{
    $queryFilter->addStringFilter("name", strtolower(($filterObject['name'])));
}

顺便说一句,您没有检查的一种情况是 $filterObject['name'] 是否为空(不确定是否可能,因为我不知道您的剩余代码。如果可以,您想添加另一个并进入 if :

&& $filterObject['name']

这将确保它填充的不仅仅是一个空字符串。因此 if 部分将更改为:

 if (isset($filterObject['name']) && $filterObject['name'] && null !==  strtolower(($filterObject['name']))) 
于 2012-11-07T09:16:46.620 回答