Php 如何从查询字符串中获取布尔值?
如何在querystring中发送true或false值,然后在php中使用它?我试着做如下的事情,但即使两者都设置为false,它也会为我提供true。我将从htaccess文件中获取这些值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
<?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。谢谢你的帮助。