2015-12-04 56 views
1

我想知道一些事情。我需要使用filter_input,以前我只使用filter_inputfilter_require_array集合。但是現在我看到了一個叫做filter_require_array的函數。有什麼區別,有什麼區別?例如,我有這個網站:差異filter_input_array和filter_input filter_require_array

<form action="" method="post"> 
    <input type="text" name="test[]"> 
    <input type="text" name="test[]"> 
    <input type="submit" value="Submit"> 
</form> 

這PHP(這只是一個例子,所以這不是最好的代碼):

<?php 

$test = filter_input(INPUT_POST, 'test', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); 
$test2 = filter_input_array(INPUT_POST, 'test'); 

echo '<pre>'; 
echo var_dump($test); 
echo '</pre>'; 
echo '<hr>'; 
echo '<pre>'; 
echo var_dump($test2); 
echo '</pre>'; 
?> 

的代碼提供了有關var_dump($test)結果如下:

array(2) { 
    [0]=> 
     string(5) "test1" 
    [1]=> 
     string(5) "test2" 
} 

現在,在var_dump($test2),它提供了以下結果:

bool(false) 

爲什麼filter_input_array在這種情況下返回false?如果我可以使用filter_require_array,我會使用它,因爲我認爲它更好,但我不確定。

+0

[閱讀文檔](http://php.net/ manual/en/function.filter-input-array.php)並查看示例! –

+0

我知道......我真的嘗試過閱讀,但我只是簡單地不理解它。這就是爲什麼我在這裏問它,因爲有時候人們在這裏解釋它對我更好。 –

+0

文檔非常清晰。你不明白什麼? –

回答

2

您使用filter_input_array(INPUT_POST, 'test');

當心第二個參數

  • filter_input()的第二個參數是$variable_name
  • 同時,的filter_input_array()第二個參數是的變量名,但濾波器的定義,例如filter_input_array(INPUT_POST, $filter_definition);

    $filter_definition可以是:

    $filter_definition = [ 
        'test' => ['filter' => FILTER_SANITIZE_STRING, 
           'flags' => FILTER_REQUIRE_ARRAY], 
    ]; 
    

引述PHP手冊filter_input_array

mixed filter_input_array (int $type [, mixed $definition [, bool $add_empty = true ]])