我能得到这个直在PHP过滤器(FILTER_REQUIRE_ARRAY,FILTER_REQUIRE_SCALAR,FILTER_FORCE_ARRAY)

问题描述 投票:1回答:1

3个PHP常量我不知道他们做了什么

1. FILTER_REQUIRE_ARRAY

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 

FILTER_REQUIRE_SCALAR

    <?php 
        $x = 5;
        $y = [1, 2, 3];

        var_dump(filter_var($x,FILTER_REQUIRE_SCALAR));
        var_dump(filter_var($y,FILTER_REQUIRE_SCALAR));
    ?>

考虑到生产的分组码 布尔(假) 布尔(假) 如使用可以看到$ x是标量的确

FILTER_FORCE_ARRAY

始终返回数组这是我在phpDoc发现这个文件给我讲一个这样的例子,请

php filtering
1个回答
3
投票

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()不将与数据在这个例子中,因为它预期的数据如下工作的:

用含有过滤数据串的密钥的阵列。 (见Manual

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

© www.soinside.com 2019 - 2024. All rights reserved.