感叹号在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