Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从查询字符串中获取布尔值?_Php_Url_Boolean_Query String - Fatal编程技术网

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

Php 如何从查询字符串中获取布尔值?,php,url,boolean,query-string,Php,Url,Boolean,Query String,如何在querystring中发送true或false值,然后在php中使用它?我试着做如下的事情,但即使两者都设置为false,它也会为我提供true。我将从htaccess文件中获取这些值 <?php $var = $_GET['a']; $bar = $_GET['b']; if ($var && $bar) { echo "True"; }else { echo "False"; } echo '<a href=?a=false&b=false&g

如何在querystring中发送true或false值,然后在php中使用它?我试着做如下的事情,但即使两者都设置为false,它也会为我提供true。我将从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
。字符串
“true”
“false”
在PHP中的计算结果均为true。或者:

if ($var == "true" && $bar == "true") {
或者从您的数据源发送
0
1
,而不是
“true”
“false”
(我不完全清楚.htaccess在这里的适用性-我假设它是从表单字段中按摩变量,但最终与此无关。)

关于更多信息,PHP的类型强制——也就是说,它将任意变量转换为其他类型的变量的方法——很难预测,并根据自己的逻辑进行操作

也就是说,问题的查询部分本质上不是一个PHP问题——没有通过
GET
POST
参数与布尔值进行通信的标准方法。如果你看一下,你会发现每个网站都有自己的处理方式——一些使用
“true”
,另一些使用
1
,还有一些使用
true


最后还有一种选择——JSON。虽然在您的情况下这不太可能有帮助,但我与服务器交换数据的首选方法是将所有数据编码为一个JSON字符串。这有一些好处,比如给了我对封装在JSON对象中的变量类型的细粒度控制,但它有一个缺点,那就是不能使用普通HTML表单。不过,如果您正在开发AJAX ey web应用程序,那就太好了。

我们现在决定0和1。谢谢你的帮助。