所以,我有这段代码:
$str = '_POST';
print_r($$str);
//Works just fine
function request_var($name){
global $_POST;
$str = '_POST';
print_r($$str);
}
request_var('username');
// _POST not defined
request_var函数应该做的是循环遍历$ _POST,$ _GET和$ _COOKIE变量(按此顺序),如果找到传递的变量名,则停止查找并返回该值。
我有一个系统回来按预期工作,但由于某种原因现在它告诉我_POST not defined
我无法弄清楚为什么?第一部分没有错误,但第二部分根本不起作用。是不是$ _POST一个超级全球? (注意:我只在global $_POST
添加,看看是否能解决问题)
有什么想法吗?
编辑:基于其他用户提供的答案(在编辑屏幕中看不到他们的名字),我的工作就是这样:
function request_var($name,$default='',$force_type=false){
$end = $default;
$arrays = [$_POST,$_GET,$_COOKIE];
foreach($arrays as $array){
if(isset($array[$name])){
$end = $array[$name];
break;
}
}
return ($force_type) ? settype($end,gettype($default)) : $end;
}
echo request_var('username');
//Works just fine