在PHP中,全局$ _POST数组中的值可以不是数组或字符串?
目标是不必检查脚本中是否一切都不是数组或字符串。如果我知道变量的类型,我不必做一些奇怪的验证。如果我期望一个字符串,我不必将所有内容都转换为字符串以确保它是一个字符串。
在PHP中,全局$ _POST数组中的值可以不是数组或字符串?
目标是不必检查脚本中是否一切都不是数组或字符串。如果我知道变量的类型,我不必做一些奇怪的验证。如果我期望一个字符串,我不必将所有内容都转换为字符串以确保它是一个字符串。
$_POST["key"] = true;
var_dump($_POST["key"]); // bool(true)
虽然由环境设置的值是字符串。
你可以将它转换到任何你想^^
intval($_POST['INTEGER']);
or simply
(int)$_POST['int']
将值转换为除字符串以外的值不同于与字符串不同的值。这并没有真正回答这个问题。 – jurgemaister 2013-02-19 14:54:07
按照文档http://php.net/manual/en/reserved.variables.post.php
An associative array of variables passed to the current script via the HTTP POST method.
因此,所有发送的数据是在关联数组中,键值对。有数字(int,float等),字符串,数组(数字或字符串)和对象数据类型。
使用排除规则,我们可以从支持的数据类型中删除对象,剩下的是字符串,数字和数组。
现在,如果您看到表单,输入字段是字符串,没有指示输入字段中输入的值是数字或字符串。所以为了安全起见,所有发布的值都以字符串形式存在。元素数组也具有字符串值。
当你在$ _ POST值那简直是一个数组,你可以覆盖它的任何时间
$_POST['username'] = 1;
var_dump($_POST['username']); // int (1)
我希望这一定意义
别的东西吗?你有什么想法 – Nick 2013-02-19 14:49:45
而不是玩猜测游戏,解释你的问题的原因,你想达到什么。 – CodeCaster 2013-02-19 14:51:16
possible dupe http://stackoverflow.com/questions/5052932/how-to-get-int-instead-string-from-form – 2013-02-19 14:52:47