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

osc*_*car 3 php if-statement isset

可能重复:
参考 - 这个符号在PHP中意味着什么?
混淆空,isset,!空,!isset

在PHP中有什么区别:

if(!isset) 
if(isset)
Run Code Online (Sandbox Code Playgroud)

同样的,if(!empty)if(empty)

什么是"!" 性格的意思?

Li-*_*Yip 20

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

那是:

  • if(isset)使事情发生,如果isset是合乎逻辑的True.
  • if(!isset)使事情发生,如果isset是合乎逻辑的False.

有关PHP文档中的运算符(逻辑和其他类型)的更多信息.!那里查找以巩固您对它的作用的理解.当你在那里时,也要查找其他逻辑运算符:

  • && 逻辑AND
  • || 逻辑或
  • xor 逻辑EXCLUSIVE-OR

这也是逻辑语句中常用的.


Dav*_*dom 8

!字符是逻辑"非"运算符.它反转了表达式的布尔含义.

如果你有一个计算结果的表达式TRUE,为它添加前缀会!导致它计算,FALSE反之亦然.

$test = 'value';

var_dump(isset($test));  // TRUE
var_dump(!isset($test)); // FALSE
Run Code Online (Sandbox Code Playgroud)

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

empty()返回TRUE如果给定的变量在当前范围定义,或者如果它是与被认为是"空"的值来定义.这些值是:

NULL    // NULL value
0       // Integer/float zero
''      // Empty string
'0'     // String '0'
FALSE   // Boolean FALSE
array() // empty array
Run Code Online (Sandbox Code Playgroud)

根据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
Run Code Online (Sandbox Code Playgroud)