if(!$ variablename)在PHP中做什么?

132*_*941 4 php operators not-operator

我知道这!=是"不平等",但是当你有这个时它意味着什么:

if(!$something)
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是与异常有关,但环顾谷歌并没有返回任何东西.

那这是做什么的呢?

kap*_*apa 11

变量中的任何内容都将转换为布尔值(变量本身当然保持不变),然后!对结果布尔值执行NOT运算().转换将发生,因为!它是逻辑运算符,仅适用于布尔值.

转换为布尔值时,以下值被视为FALSE:

  • 布尔值FALSE本身
  • 整数0(零)
  • 浮点数0.0(零)
  • 空字符串,字符串"0"
  • 一个零元素的数组
  • 一个零成员变量的对象(仅限PHP 4)
  • 特殊类型NULL(包括未设置的变量)
  • 从空标签创建的SimpleXML对象

提示:如果变量预计不会是布尔值,你可能需要使用更具体的喜欢的东西isset($variable),empty($variable),$variable === ''等,这取决于你要检查什么.有关详细信息,请查看手册

  • +1列表中的值被视为false (2认同)