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

时间:2012-06-13 10:19:47

标签: php operators not-operator

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

if(!$something)

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

这是做什么的?

12 个答案:

答案 0 :(得分:10)

变量中的任何内容都是converted to a Boolean(变量本身当然保持不变),然后对结果布尔值进行NOT运算(!)。转换将发生,因为!Logical Operator并且仅适用于布尔值。

  

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

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

提示:如果预计该变量不是布尔值,您可能希望使用更具体的内容,例如isset($variable)empty($variable)$variable === ''等。取决于你想要检查的内容。有关详细信息,请查阅手册。

答案 1 :(得分:6)

它与:

相同
if((bool)$something != true) {

请参阅:http://www.php.net/manual/en/control-structures.if.php

答案 2 :(得分:3)

if (!$something) {

相当于

if ($something == false) {

答案 3 :(得分:2)

检查$ something是否是假的。

答案 4 :(得分:1)

它只是意味着"如果没有"。

if (!false) {
   this_happens_because_not_false_is_true();
}

答案 5 :(得分:1)

if(!$variable)if($variable == false)相同,因此会检查$ variable是否为假 请查看@bažmegakapaanswer以查看哪些值被视为错误。

答案 6 :(得分:0)

检查$something是否为假。

答案 7 :(得分:0)

它检查!$something是否为假,或者你可以理解它(如果不是$ something)然后{//这将执行}并且如果$ something存在则那么这将不会进入if

答案 8 :(得分:0)

!$ variable是'Not'逻辑运算符 http://uk3.php.net/manual/en/language.operators.logical.php

它需要一个布尔值并翻转它。真实变为虚假,虚假变为真。

答案 9 :(得分:0)

它将变量转换为变量的boolean等价物。这可以在少数情况下给出:

<?php

    // Case 1: $variable is boolean
    $variable = true;
    $variable = !$variable; // Changes to false;
    var_dump($variable); // bool(false)

    // Case 2a: $variable is a positive integer
    $variable = 5;
    $variable = !$variable; // Changes to false;
    var_dump($variable); // bool(false)

    // Case 2b: $variable is an integer other than 0
    $variable = 0;
    $variable = !$variable; // Changes to false;
    var_dump($variable); // bool(true)

    // Case 2c: $variable is a negative integer
    $variable = -5;
    $variable = !$variable; // Changes to false;
    var_dump($variable); // bool(false)

    // Case 3a: $variable is string
    $variable = "Hello";
    $variable = !$variable; // Changes to false;
    var_dump($variable); // bool(false)

    // Case 3b: $variable is empty string
    $variable = "";
    $variable = !$variable; // Changes to false;
    var_dump($variable); // bool(true)
?>

简而言之,它与empty()函数相反! :)

希望这有帮助! :)

答案 10 :(得分:0)

我曾经遇到以下代码

 if (!$this->error) {
      return false;
    } else {
    return true;
    }   

我以为“如果没有错误,为什么要错误?那是错误的!”因为我以为“!”运算符等于“ NOT”。 并交换收益。但是每次都出现错误条件代码。 然后学习。 “!”运算符将变量转换为布尔值。空变量转换为“假”。而“ if”语句中带有“!”运算符的运行方式是这样的:“如果此布尔值为false,则返回false,否则返回true。!:)

答案 11 :(得分:-2)

if($somethin == ""){
}

Or

if($somethin != ""){
}