Php $\u POST*中的值不能是字符串吗?
在PHP中,全局$\u POST数组中的值可以是数组或字符串以外的值吗Php $\u POST*中的值不能是字符串吗?,php,httpwebrequest,request,Php,Httpwebrequest,Request,在PHP中,全局$\u POST数组中的值可以是数组或字符串以外的值吗 目标是不必检查脚本中的所有内容是否都不是数组或字符串。如果我知道变量的类型,我就不必做一些奇怪的验证。如果我想要一个字符串,我不必把所有的东西都放在一个字符串上,以确保它是一个字符串 $_POST["key"] = true; var_dump($_POST["key"]); // bool(true) 但是,环境设置的值是字符串。您可以将其强制转换为您想要的任何值^^ intval($_POST['INTEGER'])
目标是不必检查脚本中的所有内容是否都不是数组或字符串。如果我知道变量的类型,我就不必做一些奇怪的验证。如果我想要一个字符串,我不必把所有的东西都放在一个字符串上,以确保它是一个字符串
$_POST["key"] = true;
var_dump($_POST["key"]); // bool(true)
但是,环境设置的值是字符串。您可以将其强制转换为您想要的任何值^^
intval($_POST['INTEGER']);
or simply
(int)$_POST['int']
根据文件
所以所有发送的数据都在关联数组中,在键值对中。有数字(int、float等)、字符串、数组(数字或字符串)和对象数据类型
使用消去规则,我们可以从支持的数据类型中删除对象,剩下的是字符串、数字和数组
现在,如果您看到表单,输入字段采用字符串,则没有迹象表明输入字段中输入的值是数字或字符串。为了安全起见,所有发布的值都是字符串。元素数组也有字符串值
当您在$\u POST中获得值时,它只是一个数组,您可以随时覆盖它
$_POST['username'] = 1;
var_dump($_POST['username']); // int (1)
我希望这有点道理还有别的吗?你脑子里想的是什么?与其玩猜谜游戏,不如解释你的问题的原因以及你想要达到的目的。可能的欺骗目标是不必检查脚本中的所有内容是否都是数组或字符串以外的内容。如果我知道变量的类型,我就不必进行奇怪的验证。你应该始终进行输入验证。将值转换为字符串以外的其他值与值与字符串不同是不同的。这并不能真正回答问题。
$_POST['username'] = 1;
var_dump($_POST['username']); // int (1)