【发布时间】:2014-10-07 18:27:33
【问题描述】:
我想知道是否有办法让 POST 数组的值以字符串类型以外的形式返回?
所以,例如,如果我想:
foreach ($_POST as $key => $value)
{
if (is_X($value)) // X being int or bool or string, etc....
{
do something.....
}
}
我开始想也许settype($var, "type")
但是,我必须为每个输入显式设置类型,这似乎是一种荒谬的方式。
【问题讨论】:
-
您要么必须传递类型,要么根据某些标准确定它。字符串 0 和 1 是整数还是布尔值?
-
这就是你使用非强类型语言所得到的。 :)
-
没有。 GET/POST 中的所有内容本质上都是一个字符串。没有其他办法了。使用它们时,您必须将字符串类型转换为其他内容。例如
$forced_int = (int)$_POST['somekey'];。至于“荒谬”:您是否在 http 规范中看到允许将此类元数据放入查询字符串/表单字段的任何地方?http://example.com/script.php?x:int=42无效或预期无效。 -
您要对哪些输入类型进行转换?还有为什么?
-
我以 $_POST 为例,它可以是任何数组。我可以说
foreach ($array as $k => $v)结果是相同的 --type 字符串。我只是想知道是否有比类型转换更好的解决方案@MarcB
标签: php arrays post variable-types