PHP 5.4: Можно ли использовать несколько флагов с фильтром, используя filter_var_array ()?

Руководство PHP: filter_var_array ()

mixed filter_var_array ( array $data [, mixed $definition [, bool $add_empty = true ]] ) 

Может ли что-то подобное для аргумента $ definition вызова filter_var_array() работать? (синтаксис массива> = PHP5.4)

  $def = [ 'firstName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => [FILTER_REQUIRE_SCALAR | FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH]], 'lastName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => [FILTER_REQUIRE_SCALAR | FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH]], ]; 

Использует ли только один флаг за раз единственный способ использовать флаги при использовании filter_input_array() ? Например: (выписал длинный путь, хотя я мог бы сделать это с помощью цикла).

  $def1 = [ 'firstName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_REQUIRE_SCALAR], 'lastName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_REQUIRE_SCALAR] ]; $def2 = [ 'firstName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_FLAG_NO_ENCODE_QUOTES], 'lastName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_FLAG_NO_ENCODE_QUOTES] ]; $def3 = [ 'firstName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_FLAG_STRIP_LOW], 'lastName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_FLAG_STRIP_LOW] ]; $def4 = [ 'firstName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_FLAG_STRIP_HIGH], 'lastName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_FLAG_STRIP_HIGH] ]; 

Просто убедитесь, что вы не помещаете флаги в свой собственный массив. Параметры могут быть в массиве, но флаги должны рассматриваться как одна вещь, разделенная побитовым оператором OR ( | ).

  $def = [ 'firstName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_REQUIRE_SCALAR | FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH], 'lastName' => ['filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_REQUIRE_SCALAR | FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH] ];