POST 变量数组和filter_input

2022-08-30 09:56:26

使用 时,我无法拉入数组变量。输入:filter_inputPOSTPOST

type              => 'container',
action            => 'edit',
data[display]     => 1,
data[query_limit] => 100

我可以作为数组从超全局正确访问变量,但filter_input函数不返回任何内容:data$_POST

$data   = $_POST['data']; // Working, woot
$data   = filter_input(INPUT_POST, 'data'); // returns null, should return array
$action = filter_input(INPUT_POST, 'action'); // returns "edit" (correctly)

是否不能用于数组变量?filter_inputPOST


答案 1

尝试:

$data   = filter_input(INPUT_POST, 'data', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);

链接:

http://php.net/manual/en/function.filter-input.php

http://php.net/manual/en/filter.filters.flags.php


答案 2

FILTER_REQUIRE_ARRAY如果变量包含标量值,则返回 false。如果您不确定或只是打算同时接受标量值和数组值的变量,请改用,这会将任何输入视为数组,实质上相应地转换标量值。POSTPOSTFILTER_FORCE_ARRAY

$data = filter_input(INPUT_POST, 'data', FILTER_DEFAULT, FILTER_FORCE_ARRAY);