【问题标题】:Can i get this straight in php filters (FILTER_REQUIRE_ARRAY, FILTER_REQUIRE_SCALAR , FILTER_FORCE_ARRAY )我可以直接在 php 过滤器中得到这个吗(FILTER_REQUIRE_ARRAY、FILTER_REQUIRE_SCALAR、FILTER_FORCE_ARRAY)
【发布时间】:2015-02-24 18:34:29
【问题描述】:

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));
    ?>

考虑产生

bool(false)
bool(false)
的 prev 代​​码作为使用可以看到 $x 确实是 Scalar强>


FILTER_FORCE_ARRAY

总是返回一个数组这是我在phpDoc找到的所有文档请给我一个关于这个的例子

【问题讨论】:

    标签: php filtering


    【解决方案1】:

    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
    

    在这个 sn-p 中,如果希望输入是一个数组,通过使用 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 标志不存在,则 $result 将为 int 1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 2022-11-25
      • 2011-02-24
      • 2020-01-14
      • 1970-01-01
      相关资源
      最近更新 更多