【问题标题】:If not variable condition is not working如果不是变量条件不起作用
【发布时间】:2016-11-10 09:59:09
【问题描述】:

我正在尝试检查变量值是假还是真,这是我的代码

$print_ready_flag = $_GET['print_ready']; // i'm passing it as either true or false

echo $print_ready_flag ; // I'm getting correct value 

我想做的是,

if ($print_ready_flag == false) {
     file_name = "albumpdf_" . $Order['products_name'] . "_" . $OrderId . "_" . $OrderPId . ".pdf";
}

当像上面的表达式一样进行评估时,但是当我尝试时

如果 (!$print_ready_flag) {,

如果 (!(bool)$print_ready_flag)

。表达式不计算。有什么方法可以在不使用比较运算符的情况下评估表达式。

【问题讨论】:

  • 在此之前尝试if ($print_ready_flag === false) {,还要检查var_dump($print_ready_flag)
  • 是的,我在谷歌搜索时也看到了这个。不使用操作符还有其他方法吗?
  • 我正在为该变量传递 true 或 false。所以 isset 和 empty 不起作用
  • 是的,在这种情况下,isset() 将始终是 isset
  • 不知道你是不是没有使用运算符... 三元解决方案:$status = ($print_ready_flag ? false : true) 只是一个例子

标签: php


【解决方案1】:

嗯,你的所有条件看起来都很好。您必须在代码中添加 php `error_reporting(),这将帮助您查找语法和警告。

这里有错别字:

// missing $ sign
file_name = "albumpdf_" . $Order['products_name'] . "_" . $OrderId . "_" . $OrderPId . ".pdf"; 

对于$_GET,最好使用print_ready=0 而不是print_ready=false。 否则,您必须与=== 核对value+dataType

【讨论】:

  • @Anju:很高兴帮助你
【解决方案2】:
$print_ready_flag = $_GET['print_ready']; 

echo $print_ready_flag ; // I'm getting correct value 
$print_ready_flag = filter_var($print_ready_flag, FILTER_VALIDATE_BOOLEAN);
if ($print_ready_flag == false) {
  file_name = "albumpdf_" . $Order['products_name'] . "_" . $OrderId . "_" . $OrderPId . ".pdf";
}

【讨论】:

    猜你喜欢
    • 2021-08-04
    • 2012-07-11
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多