如果不是变量条件不起作用

时间:2016-11-10 09:59:09

标签: php

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

$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";
}

当做上述表达时正在评估,但当我尝试

  

if(!$ print_ready_flag){,

     

if(!(bool)$ print_ready_flag)

。表达式没有评估。是否有任何方法可以使用比较运算符来评估表达式。

2 个答案:

答案 0 :(得分:1)

$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";
}

答案 1 :(得分:1)

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

你这里有一个错字:

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

最好使用print_ready=0代替print_ready=false $_GET。 否则,您必须与===核对value+dataType