编程语言
首页 > 编程语言> > php – 如何从查询字符串中获取布尔值?

php – 如何从查询字符串中获取布尔值?

作者:互联网

如何在查询字符串中发送true或false值然后在php中使用它?我正在尝试如下操作,但即使两者都设置为false,它也会让我真实.我将从htaccess文件中获取这些值.

<?php
$var = $_GET['a'];
$bar = $_GET['b'];

if ($var && $bar)
{
echo "True";
}else
{
echo "False";
}

echo '<a href=?a=false&b=false>Check</a>';
?>

解决方法:

他们都评估为True,因为你不能通过查询字符串发送一个正确的布尔值true或false.在PHP中,字符串“true”和“false”都评估为TRUE.要么:

if ($var == "true" && $bar == "true") {

或者从你的数据源发送0和1而不是“true”和“false”(我不完全清楚你的.htaccess如何适应这里 – 我假设它正在从表单字段中按摩变量,但它最终无关紧要.)

有关更多信息,check out this incredibly massive table of PHP truth values. PHP的类型强制 – 也就是说,它将任意变量转换为其他类型变量的方法 – 很难预测并根据自己的逻辑运行.

也就是说,问题的查询字符串部分本质上不是PHP问题 – 没有通过GET或POST参数来传达布尔值的规范方法.如果你看,你会发现每个网站都以自己的方式处理它 – 有些使用“true”,有些则使用1,而其他网站使用TRUE.

最后一个选择 – JSON.虽然在您的情况下不太可能有所帮助,但我与服务器交换数据的首选方法是将所有数据编码为单个JSON字符串.这有一些好处,例如让我对封装在我的JSON对象中的变量类型进行细粒度控制,但它的缺点是不能使用vanilla HTML表单.不过,如果您正在使用AJAX-ey Web应用程序,那就太棒了.

标签:php,boolean,url,query-string
来源: https://codeday.me/bug/20190729/1571503.html