我不明白为什么这是空的PHP变量发生

时间:2018-09-05 19:31:58

标签: php string if-statement

我尝试这样做:

<div *ngIf="newitem" id="custom-animated-div" class="custom-popup">
   <div class="popup-data"> 
       {{newitem._id}} 
        <br> 
        {{newitem.name}} </div>
        <div class="popup-close" (click)="closePopup();">
        <i class="material-icons">&#xE5CD;</i>
   </div>
</div>

但是最终不得不这样做:

if ($var !== ""){
    $message = "whatever";
}

为什么会这样?两者都不应该是同一回事吗?

3 个答案:

答案 0 :(得分:1)

$var实际上是string,只需使用:

if ($var){//any non-empty string will work fine as it will be casted to boolean automatically
    $message = "whatever";
} 

答案 1 :(得分:1)

!===是相反的(非严格比较运算符)。

!=====是相反的(严格的比较运算符,其中的值必须完全匹配您要比较的内容)。

如果您使用!=而不是!==,则您的代码应该可以使用。但是:

  • 您应该了解变量的实际值是什么-它不是空字符串。您可以使用print_r( $var );来查看它。
  • 最好使用严格的比较运算符===!==,因为它们具有定义明确的行为,易于记忆和调试。

答案 2 :(得分:0)

$ var可以是!= '',但不能= '',例如.. null

  if ($var == ""){
   //do nothing
 } else {
   if (is_null($var) {
     $message ='NULL';
   } else {
     $message = "whatever";
   }

}