3 константы php я не уверен, что они делают
The name says it all I can agree no more but there is a function called
<em>filter_var/input_array()</em> which works in similar fashion;
I've seen examples where recursive validation is required but
not all element in the array are arrays some items are just scalar value
<?php
$x = 5;
$y = [1, 2, 3];
var_dump(filter_var($x,FILTER_REQUIRE_SCALAR));
var_dump(filter_var($y,FILTER_REQUIRE_SCALAR));
?>
Рассмотрим предыдущий код, который производит
BOOL (ложь)
BOOL (ложь)
как видно $ x действительно скаляр
Всегда возвращает массив Это все документация, которую я нашел об этом в PHPDoc приведите пример об этом, пожалуйста
FILTER_REQUIRE_ARRAY:
<?php
$arr = array(1,2,3,4,5);
$a = 3;
$result = filter_var( $arr,FILTER_VALIDATE_INT, FILTER_REQUIRE_ARRAY);
var_dump($result);
// output:
array (size=5)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => int 5
$result = filter_var( $a,FILTER_VALIDATE_INT, FILTER_REQUIRE_ARRAY);
var_dump($result); // boolean false
В этом фрагменте, если вы ожидаете, что входные данные будут массивом, используя опцию FILTER_REQUIRE_ARRAY, это помогает избежать проверки входных данных, содержащих скалярное значение вместо массива.
filter_var_array () не будет работать с данными в этом примере, поскольку ожидает, что данные выглядят следующим образом:
Массив со строковыми ключами, содержащий данные для фильтрации. (увидеть Руководство)
FILTER_REQUIRE_SCALAR:
<?php
$arr = array(1,2,3,4,5);
$a = 3;
$result = filter_var( $arr,FILTER_VALIDATE_INT, FILTER_REQUIRE_SCALAR);
var_dump($result); // boolean false
$result = filter_var( $a,FILTER_VALIDATE_INT, FILTER_REQUIRE_SCALAR);
var_dump($result); // int 3
В предыдущем коде, если ожидается, что входные данные будут скалярными, используя опцию FILTER_REQUIRE_SCALAR, это полезно при обнаружении, содержит ли входной массив массив информации вместо ожидаемого скалярного значения.
Вот простой пример, который использует FILTER_FORCE_ARRAY:
<?php
$num = "1";
$result = filter_var( $num,FILTER_VALIDATE_INT,FILTER_FORCE_ARRAY);
var_dump($result);
// output:
array (size=1)
0 => int 1
Если бы флаг FILTER_FORCE_ARRAY не присутствовал, то $ результат будет int 1
Других решений пока нет …