繁体   English   中英

在将javaScript变量发送到php变量中进行类型转换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM