我正在从一本书中学习基本的PHP,根据我的阅读,=
是一个赋值运算符,而==
是一个比较运算符。所以......
$x = 5;
$x == 5: true
......有道理。然而,这本书给出了一个令我困惑的例子:
if (++$x == 10)
echo $x;
为什么==?我们不是想说“如果++ $ x等于10,那么回声$ x”......?那看起来像是:if(++ $ x = 10)。前者就像在条件陈述中提出一个问题,这是不合逻辑或多余的。
答案 0 :(得分:4)
==
表示相等,因此条件读为:
如果预先递增$x
等于10,则回显$x
单=
是赋值,其中变量设置为包含值:
$word = 'hello';
$number = 5;
// etc.
echo "I said $word $number times!";
关于增量操作符:
在学习PHP(和/或其他语言)时,您会看到++$x
和$i--
之类的内容。这些是递增/递减运算符。 其中与他们正在操作的变量相关的位置非常重要。
如果它们在变量之前放置,如++$x
,则它是一个预增量/减量。这意味着在对变量进行任何其他操作之前执行操作。如果它位于之后的,如$x++
,那么它是一个后递增/递减,这意味着之后会执行该操作。
在示例脚本中最容易看到:
$x = 5;
echo ++$x; // 6
echo $x++; // ALSO 6
echo $x; // NOW 7
答案 1 :(得分:0)
++$x
,因此这种情况是正确的:
$x = 9;
if (++$x == 10) {
//this is executed
}
这可用于构建非常短的while
循环:
// Count from 1 to 10
$i = 0
while ($i <= 10) {
echo ++$i;
}
$i++
和++$i
之间的差异是递增和评估的顺序:
// Count from 0 to 9
$i = 0
while ($i <= 10) {
echo $i++;
}
答案 2 :(得分:0)
我建议不要在if语句中递增/递减变量......这对代码可读性不好。在任何情况下,你仍然在这里进行比较,你只是增加X的值。
以这种方式考虑:
if((++$x) == 10)
你在'=='的左边有一个表达式,你要与右边的表达式进行比较。首先评估++ $ x,然后将其结果与10进行比较。
答案 3 :(得分:0)
本书的内容是:如果变量在10处为真,则将变量写出。 if
语句评估条件是真还是假..所以
if ($x == 10)
选中时同样如此:
$x = 9
if (++$x == 10)
答案 4 :(得分:0)
我们总是在条件语句中提问,并根据结果是真还是假来判断。如果你说++ $ x = 10,你会说“将一个添加到X,然后将X的值设置为10”。相反,你想在我们向X IS添加一个之后知道IF,它等于10.
=表示将左侧的表达式设置为右侧的值 ==表示如果左边的表达式与右边的值相同,请告诉我。
答案 5 :(得分:0)
语法=
是赋值:
$Var = "String"; // $Var is now set to contain "string"
而
==
是一个比较运算符:
if ($Var == "Value){
// Since var is set to "string", the comparison fails
}
你的例子:
if (++$x == 10){
}
与此相同:
$i = 0;
while ($i < $x){
if ($x == 10){
break;
}
++$x;
}