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'])));
}

ところで、チェックしなかった1つのケースは、 $filterObject['name'] が空であるかどうかです(残りのコードがわからないため、可能かどうかはわかりません。可能な場合は、別のものを追加してifに追加します:

&& $filterObject['name']

これにより、空の文字列以上で満たされることが保証されます。したがって、if 部分は次のように変更されます。

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