4

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

if(!$something)

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

那么这有什么作用呢?

4

12 回答 12

12

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

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

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

提示:如果变量预计不是布尔值,您可能需要使用更具体的值,例如isset($variable)empty($variable)$variable === ''等,具体取决于您要检查的内容。详情请查看手册。

于 2012-06-13T10:23:02.210 回答
6

它与以下内容相同:

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

见:http ://www.php.net/manual/en/control-structures.if.php

于 2012-06-13T10:21:52.757 回答
3
if (!$something) {

相当于

if ($something == false) {
于 2012-06-13T10:21:45.707 回答
2

检查 $something 是否是虚假的。

于 2012-06-13T10:21:25.410 回答
1

它只是意味着“如果不是什么”。

if (!false) {
   this_happens_because_not_false_is_true();
}
于 2012-06-13T10:21:09.363 回答
1

if(!$variable)相同,if($variable == false)因此它检查 $variable 是否为假
查看@bažmegakapa答案以查看哪些值被认为是假的。

于 2012-06-13T10:24:09.450 回答
1

它将变量转换为变量的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()功能相反!:)

希望这可以帮助!:)

于 2012-06-13T10:26:20.367 回答
0

检查是否$something为假。

于 2012-06-13T10:23:27.117 回答
0

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

于 2012-06-13T10:23:51.030 回答
0

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

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

于 2012-06-13T10:24:31.553 回答
0

我曾经遇到过以下代码

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

我想“如果没有错误,为什么是错误的?那是错误的!” 因为我想“!” 运算符等于“NOT”。并交换了回报。但是每次错误条件代码都会运行。然后学会了。“!” 运算符将变量转换为布尔值。空变量转换为“假”。以及带有“!”的“if”语句 操作员像这样运行“如果这个布尔值为假,则返回假,否则返回真。!:)

于 2020-08-21T16:29:39.263 回答
-3
if($somethin == ""){
}

Or

if($somethin != ""){
}
于 2012-06-13T11:15:20.167 回答