感叹号在PHP中意味着什么?

可能重复:
参考 - 这个符号在PHP中的含义是什么?
混淆空,isset,!空,!isset

在PHP之间有什么区别:

if(!isset) 
if(isset)

if(!empty)if(empty)

什么是“!” 字符的意思?


! 是逻辑否定或NOT运算符。 它颠倒了逻辑测试的意义。

那是:

  • if(isset)使得事情发生,如果isset是逻辑True
  • if(!isset)使得某些事情发生,如果isset是逻辑False
  • 更多关于PHP文档中的运算符(逻辑和其他类型)。 抬头看! 在那里巩固你对它的作用的理解。 当你在那里时,还要查看其他逻辑运算符:

  • &&逻辑AND
  • || 逻辑或
  • xor或逻辑EXCLUSIVE-OR
  • 逻辑陈述中也常用这些。


    ! 字符是逻辑“不”运算符。 它颠倒了表达式的布尔意义。

    如果您有一个表达式的值为TRUE ,则以它为前缀! 导致它评估为FALSE ,反之亦然。

    $test = 'value';
    
    var_dump(isset($test));  // TRUE
    var_dump(!isset($test)); // FALSE
    

    如果给定变量在当前作用域中使用非空值定义,则isset()返回TRUE

    如果给定变量未在当前作用域中定义,或者使用被视为“空”的值定义,则empty()返回TRUE 。 这些值是:

    NULL    // NULL value
    0       // Integer/float zero
    ''      // Empty string
    '0'     // String '0'
    FALSE   // Boolean FALSE
    array() // empty array
    

    根据PHP版本,没有属性的对象也可能被认为是空的。

    这样做的结果是isset()empty()几乎相互补充(它们返回相反的结果),但不完全,因为empty()对变量的值执行额外的检查, isset()只是检查它是否被定义为。

    考虑下面的例子:

    var_dump(isset($test)); // FALSE
    var_dump(empty($test)); // TRUE
    
    $test = '';
    
    var_dump(isset($test)); // TRUE
    var_dump(empty($test)); // TRUE
    
    $test = 'value';
    
    var_dump(isset($test)); // TRUE
    var_dump(empty($test)); // FALSE
    

    $var = 0;
    
    // Evaluates to true because $var is empty
    if (empty($var)) {
        echo '$var is either 0, empty, or not set at all';
    }
    
    // Evaluates as true because $var is set
    if (isset($var)) {
        echo '$var is set even though it is empty';
    }
    

    编辑:

    这里是你的测试案例:

    $p = false;
    echo isset($p) ? '$p is setted : ' : '$p is not setted : ';
    echo empty($p) ? '$p is empty' : '$p is not empty';
    echo "<BR>";
    

    $ p被设置:$ p是空的

    链接地址: http://www.djcxy.com/p/10209.html

    上一篇: What does the exclamation point mean in PHP?

    下一篇: Ampersand before the variable in foreach loop