我已经使用PHP了很长一段时间了,但这对我来说总是一个谜,在变量前正确使用感叹号(负号)。
!$var
表示什么? var false
是空的,没有设置等吗?
以下是我需要学习的一些例子......
示例1:
$string = 'hello';
$hello = (!empty($string)) ? $string : '';
if (!$hello)
{
die('Variable hello is empty');
}
这个例子有效吗?如果$string
为空,if语句是否真的有效?
示例2:
$int = 5;
$count = (!empty($int)) ? $int : 0;
// Note the positive check here
if ($count)
{
die('Variable count was not empty');
}
这个例子有效吗?
我从不使用上述任何示例,我将这些if ($var)
限制为仅具有布尔值的变量。我只需要知道这些示例是否有效,这样我就可以扩大if ($var)
语句的使用范围。他们看起来很干净。
感谢。
答案 0 :(得分:18)
if(! $a)
与if($a == false)
相同。此外,应该考虑使用==
运算符时发生类型转换
有关详细信息,请查看“与==的松散比较”部分here。从那里开始,字符串“0”和“”等于FALSE("0"==false
为TRUE,""==false
也为TRUE。
关于发布的例子:
示例1
它会起作用,但你应该注意,“0”和“”都是'空'字符串。
示例2
它会起作用
答案 1 :(得分:2)
!
否定。 true变为false,任何评估为false的东西都变为true。
如果您正在编写PHP并且您并不了解所有操作员......在您熟悉它们之前,不应该编写一行代码:
http://php.net/manual/en/language.operators.php
这些是绝对的基础。
答案 2 :(得分:0)
它是一个布尔测试者。空或假。
答案 3 :(得分:0)
这是not
布尔运算符,有关详细信息,请参阅the PHP manual。