Różne filter flags mogą być używane z funkcją PHP filter_input()
.Czy można łączyć flagi filtru PHP filter_input() z AND/OR?
Na przykład, jeśli chcę odzyskać wartość skalarnego pola POST, mogę użyć wartości domyślnej bez określania filtru. Lub, jeśli ja mam do czynienia z polem POST tablicy, chciałbym użyć odpowiedniego filtra:
$scalar = filter_input(INPUT_POST, 'field');
$array = filter_input(INPUT_POST, 'field', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
to możliwe, aby połączyć flagi filtrów albo AND
lub OR
? Na przykład, przy OR
:
$value = filter_input(INPUT_POST, 'field', FILTER_DEFAULT, FILTER_REQUIRE_SCALAR || FILTER_REQUIRE_ARRAY);
Możliwe zastosowanie tego będzie zapętlenie nad polami Post, z których niektóre mogą być tablicami. np
foreach ($fieldSet as $field)
{
$value = filter_input(INPUT_POST, $field, FILTER_DEFAULT, FILTER_REQUIRE_SCALAR || FILTER_REQUIRE_ARRAY);
...
}
http://php.net/manual/en/function.filter-input.php: "opcje: asocjacyjna tablica opcji lub bitowe przekształcanie flag." – CBroe
Używanie operatora bitowego w 'FILTER_REQUIRE_SCALAR | FILTER_REQUIRE_ARRAY' na tablicy POST zwraca false. – reformed
Cóż, należy się tego spodziewać, ponieważ nic nie jest skalarem _i_ tablicą w tym samym czasie. To, że możesz łączyć filtry _all_ w ten sposób, nie musi oznaczać, że każda kombinacja ma sens. – CBroe