我应该转换为布尔值还是伪造布尔值


Should I be casting as a boolean or fake a boolean?

如果我得到一个整数变量(从0+中的任何位置),我可以做一些事情来确保数字是而不是0(零):

  • 选项1:

    if($number > 0){
        // number is not zero
    }
    
  • 选项2:

    if($number){
        // number is not zero
    }
    
  • 选项3:

    if((bool) $number){
        // number is not zero
    }
    
  • 选项4:

    if(!!$number){
        // number is not zero
    }
    
  • 等等

以上哪一项被认为是最好的做法
或者还有更好的选择吗?

使用相同的比较运算符,它不执行任何类型的杂耍(而且速度更快)。

if ($number !== 0) {
 //         ^^^
 // Number is not identical to 0
}

注意:这是假设变量实际上是一个"整数变量",而不是碰巧包含数字的字符串

if (false == ($number === 0)) {
 //                   ^^^
 // It is false that Number is identical to 0
}

我一直使用这个:

if(!empty($number)){
 // Number is not 0
}

我认为这是一石二鸟。

  • 变量集
  • 0
if($number != 0){
 // Number is not 0
}