变量前面的感叹号 - 需要澄清

Exclamation mark in front of variable - clarification needed

提问人:aborted 提问时间:10/23/2012 最后编辑:Dennisaborted 更新时间:4/17/2015 访问量:37977

问:

我已经使用 PHP 很长一段时间了,但这对我来说一直是个谜,在变量前面正确使用感叹号(负号)。

什么表示?var 、 空、未设置等吗?!$varfalse

以下是我需要学习的一些例子......

示例 1:

$string = 'hello';
$hello = (!empty($string)) ? $string : '';

if (!$hello)
{
    die('Variable hello is empty');
}

这个例子有效吗?if 语句真的有效吗?$string

示例 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)

谢谢。

PHP 变量 if-statement 布尔表达式 否定

评论

0赞 My Head Hurts 10/23/2012
您应该在 PHP 中查找逻辑运算符
0赞 aborted 10/23/2012
您没有使用该链接回答我的问题。下面没有人这样做。我需要知道上面的例子是否有效。
1赞 aborted 10/23/2012
@MyHeadHurts 告诉我怎么不能告诉我答案是什么?这个网站不应该这样工作吗?有人问,知道的人回答。我在这里发帖不是为了让自己看起来很愚蠢,但我要求澄清一件我已经知道的事情,但希望扩展它。说“示例 1 有效,示例 2 有效”会更简单,而不是告诉我阅读逻辑运算符。Afaik,没有人真正读到最后的问题,除了 bhovhannes,这让我对这个链接省去了很多麻烦。
2赞 My Head Hurts 10/23/2012
我相信每个人都把你的问题读到最后,这只是一个问得不好的问题。它读起来就像是作为初级程序员工作申请过程的一部分收到的东西,它检查你是否至少了解基本的编程逻辑。如果你写了这样的话:“我知道它这样做,但我不确定为什么它不这样做”,那么你会得到更好的答案,甚至可能得到一些赞成票
2赞 aborted 10/23/2012
我认为我解释得很好。不管这是一个问得不好的问题,还是我看起来像一个初级程序员,事实是,如果你来这里回答,回答,如果问题足够清楚,就不要讲如何提出问题。我问这两个例子是否有效。时期。

答:

2赞 William The Dev 10/23/2012 #1

这是一个布尔测试器。空或假。

1赞 mensi 10/23/2012 #2

它是布尔运算符,有关详细信息,请参阅 PHP 手册not

27赞 bhovhannes 10/23/2012 #3

if(! $a)与 相同。此外,还应考虑到使用运算符时会发生类型转换。
有关更多详细信息,请查看此处的“与 == 的松散比较”部分。由此可见,对于字符串,“0”和“”等于 FALSE(为 TRUE,也是 TRUE)。
if($a == false)=="0"==false""==false

关于发布的例子:
示例 1
它会起作用,但您应该注意,“0”和“”都是“空”字符串。

示例 2
它会起作用

评论

1赞 aborted 10/23/2012
终于有人真正理解了我的意思。这张表回答了我的问题。从那里我们可以理解,那么将是.那些说我需要学习基本知识的人,请下次试着仔细阅读问题,先理解我在问什么。不要急于给出一个实际上没有回答我(或其他人)问题的答案。非常感谢bhovhannes。Comparisons of $x with PHP functions$x = "php";if($x)true