当我使用ajax将数据从Javascript发布到PHP时,php $ _POST变量总是字符串。有没有办法在发布时保留变量类型。 EG在发布布尔值时为true我想要一个布尔值为true而不是一个字符串' true'。
答案 0 :(得分:5)
您可以使用JSON作为格式,PHP json解析器将为您完成。
你可以在这里找到一个例子:
答案 1 :(得分:3)
不可能直接:值总是最初在PHP端读取为字符串。
如果您需要将值强制转换为其他类型,并且无法在代码中对这些类型进行硬编码,则需要安排"输入信息"传递给PHP(也作为字符串)。这就是本身提供数据类型支持的协议(如SOAP)的工作原理。
答案 2 :(得分:1)
如上所述,您可以让JSON解析器为您执行此操作。 您也可以通过检查值自行尝试。
喜欢boolean:is_bool http://php.net/manual/en/function.is-bool.php
喜欢int:is_int http://php.net/manual/en/function.is-int.php
等
当你有POST值时可以这样做,并检查例如数字字段是否为int:
<?php
$numberIsInt = is_int($_POST["number"]);
if($numberIsInt) {
//Do something
} else {
//Return error or do something else
}
?>