PHP中的运算符=vs.==
我正在从一本书中学习基本的PHP,从我读到的内容来看,PHP中的运算符=vs.==,php,operators,Php,Operators,我正在从一本书中学习基本的PHP,从我读到的内容来看,=是赋值运算符,=是比较运算符。所以 $x = 5; $x == 5: true …有道理。然而,这本书给出了一个让我困惑的例子: if (++$x == 10) echo $x; 为什么==?我们不是想说“如果+++$x等于10,那么echo$x”。。。?那看起来像是:如果(+$x=10)。前者类似于在条件语句中提出问题,这是不合逻辑的或多余的。==表示相等,因此条件语句如下: 如果预先递增的$x等于10,则echo$x 单个=
=
是赋值运算符,=
是比较运算符。所以
$x = 5;
$x == 5: true
…有道理。然而,这本书给出了一个让我困惑的例子:
if (++$x == 10)
echo $x;
为什么==?我们不是想说“如果+++$x等于10,那么echo$x”。。。?那看起来像是:如果(+$x=10)。前者类似于在条件语句中提出问题,这是不合逻辑的或多余的。
==
表示相等,因此条件语句如下:
如果预先递增的$x
等于10,则echo$x
单个=
是赋值,其中变量设置为包含一个值:
$word = 'hello';
$number = 5;
// etc.
echo "I said $word $number times!";
关于增量opperators:
在学习PHP(和/或其他语言)时,您将看到类似于+$x
和$i--
的内容。这些是递增/递减运算符。它们相对于操作变量的位置很重要
如果它们放在变量前面,如+$x
,则它是一个预递增/递减。这意味着在对变量执行任何其他操作之前执行该操作。如果它放在后面,比如$x++
,它是一个后增量/减量,这意味着操作是在之后执行的
在示例脚本中最容易看到:
$x = 5;
echo ++$x; // 6
echo $x++; // ALSO 6
echo $x; // NOW 7
=
表示相等,因此条件如下:
如果预先递增的$x
等于10,则echo$x
单个=
是赋值,其中变量设置为包含一个值:
$word = 'hello';
$number = 5;
// etc.
echo "I said $word $number times!";
关于增量opperators:
在学习PHP(和/或其他语言)时,您将看到类似于+$x
和$i--
的内容。这些是递增/递减运算符。它们相对于操作变量的位置很重要
如果它们放在变量前面,如+$x
,则它是一个预递增/递减。这意味着在对变量执行任何其他操作之前执行该操作。如果它放在后面,比如$x++
,它是一个后增量/减量,这意味着操作是在之后执行的
在示例脚本中最容易看到:
$x = 5;
echo ++$x; // 6
echo $x++; // ALSO 6
echo $x; // NOW 7
+$x
在条件本身被赋值之前执行,因此该条件为真:
$x = 9;
if (++$x == 10) {
//this is executed
}
这可用于构建非常短的,而循环:
// Count from 1 to 10
$i = 0
while ($i <= 10) {
echo ++$i;
}
+$x
在条件本身被赋值之前执行,因此该条件为真:
$x = 9;
if (++$x == 10) {
//this is executed
}
这可用于构建非常短的,而循环:
// Count from 1 to 10
$i = 0
while ($i <= 10) {
echo ++$i;
}
我建议不要在if语句中增加/减少变量。。。这不利于代码的可读性。在任何情况下,您仍然在这里进行比较,您只是在增加X的值
这样考虑:
if((++$x) == 10)
在“==”的左侧有一个表达式,您正在将其与右侧的表达式进行比较。首先计算+++$x,然后将其结果与10进行比较。我建议不要在if语句中增加/减少变量。。。这不利于代码的可读性。在任何情况下,您仍然在这里进行比较,您只是在增加X的值
这样考虑:
if((++$x) == 10)
在“==”的左侧有一个表达式,您正在将其与右侧的表达式进行比较。首先计算+++$x,然后将其结果与10进行比较。书中所说的是:如果变量在10处为真,则写出该变量。if
语句计算条件是真还是假。。所以
if ($x == 10)
当检查为以下情况时,也同样正确:
$x = 9
if (++$x == 10)
这本书说的是:如果一个变量在10时为真,那么就写出这个变量。if
语句计算条件是真还是假。。所以
if ($x == 10)
当检查为以下情况时,也同样正确:
$x = 9
if (++$x == 10)
我们总是在条件陈述中提问,并根据结果是真是假采取行动。如果你说+++$x=10,你会说“将一加上x,然后将x的值设为10”。相反,你想知道在我们将一加上x后,它是否等于10
=表示将左侧的表达式设置为右侧的值
==意思是告诉我是真的如果左边的表达式与右边的值相同我们总是在条件语句中提问,并根据结果是真是假采取行动。如果你说+++$x=10,你会说“将一加上x,然后将x的值设为10”。相反,你想知道在我们将一加上x后,它是否等于10
=表示将左侧的表达式设置为右侧的值
==表示如果左侧的表达式与右侧的值相同,则告诉我TRUE。语法=
为赋值:
$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;
}
$i=0;
而($i<$x){
如果($x==10){
打破
}
++$x;
}
语法=
是赋值:
$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;
}
$i=0;
而($i<$x){
如果($x==10){
打破
}
++$x;
}
if语句基本上读取“如果我们增加$x
(永久)且新值等于10,则echo$x
”可读性较差,但有效。if语句基本上读取“如果我们增加$x
(永久)且新值等于10,则echo$x
”可读性较差,但这是有效的。不过对于循环来说,这是非常好的。了解了。哈哈。不过对于
循环来说,这太棒了。了解了。哈哈。可能想解释一下什么是pre-incremented
值。或者,对于一个几乎不了解/不了解的人来说,这同样令人困惑,他们可能想解释什么是预递增的
值。否则这也会让人困惑