Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的运算符=vs.==_Php_Operators - Fatal编程技术网

PHP中的运算符=vs.==

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 单个=

我正在从一本书中学习基本的PHP,从我读到的内容来看,
=
是赋值运算符,
=
是比较运算符。所以

$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
值。或者,对于一个几乎不了解/不了解的人来说,这同样令人困惑,他们可能想解释什么是
预递增的
值。否则这也会让人困惑