[英]Type conversion in Sending javaScript variable to php variable
我有一个包含布尔值的javascript变量
var value=true;
alert(typeof(value)); //Output: boolean
我正在使用ajax将此变量发送到php文件
$.ajax({
type: 'POST',
data: {value:value},
url: 'ajax.php',
success: function (data) {
alert(data);
}
});
在我的PHP代码中,我将值作为字符串
$value=$_POST['value'];
echo gettype($value); //Output: String
为什么我将值作为字符串..?
先感谢您
所有POSTdata均以字符串形式发送,因为无法通过HTTP发送任何其他数据类型。
PHP会猜测数字数据类型(“啊,这看起来像数字,我会自动转换它!”),并且对象可以表示为JSON或其他序列化它们的方式。 布尔值倾向于表示为0/1或“ on” /“”(对于复选框,最为明显)。
您必须手动转换期望为布尔值的值,具体取决于其传输方式。
// 0 or 1
$value = !! $_POST['value'];
$value = (bool) $_POST['value'];
// 'true' or 'false'
$value = 'true' === $_POST['value'];
// 'on' or ''
$value = !! $_POST['value'];
$value = 'on' === $_POST['value'];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.