我的测试服务器上有一件奇怪的事情:我将max_input_vars
设置为100
并向over 100
元素发送了一个巨大的请求
我用过:
$num=count($_REQUEST, COUNT_RECURSIVE);
$max=ini_get('max_input_vars');
if($max - $num<50) {
die('Number of requests ('.$num.') near the maximum allowed value of max_input_vars:'.ini_get('max_input_vars'));
}
但我收到了错误
接近最大允许值max_input_vars的请求数
(90)
:100
为什么只有90?不应该是100还是99?
如果设置了更高的限制,我会在$ _REQUEST中得到240个变量,确切地说:
答案 0 :(得分:0)
max_input_vars在count($ a,COUNT_RECURSIVE)时不计算子数组容器,所以你必须改为使用递归循环:
$count = 0;
array_walk_recursive($_REQUEST, function($v) use(&$count) {
if(!is_object($v)) ++$count; //or if(is_string($v))
});