操作器= vs. ==在php

问题描述 投票:0回答:5

...有意义。但是,这本书给出了一个让我感到困惑的例子:

==
Why ==?我们不是想说“如果++ $ x等于10,那么回声$ x ...?那似乎是:if(++ $ x = 10)。前者就像在有条件的陈述中问一个问题,这是不合逻辑的或多余的。
    

$x = 5;
$x == 5: true

表示平等,因此条件读为:

如果预先介绍
if (++$x == 10) echo $x;

等于10,回声

==
php operators
5个回答
5
投票
single

$x

是分配的,其中设置了一个变量以包含一个值:

$x

标记增量操作器:
当您学习php(和/或其他语言)时,您会看到
=

$word = 'hello'; $number = 5; // etc. echo "I said $word $number times!";

之类的东西。这些是增量/减少操作员。 where

它们与他们经营的变量相关的位置很重要。

如果将变量(例如

++$x
)放置为
,则是提前/减少。这意味着在变量可以完成其他任何操作之前执行操作。如果将其放置为

,则是

$i--

++$x
,这是infter/down的降低,这意味着此后进行操作。
在示例脚本中最容易看到:
$x++

我们始终在条件陈述中提出问题,并对结果是对还是错。如果您说++ $ x = 10,您会说“将一个添加到x,然后将x的值设置为10。”相反,您想知道我们是否将一个添加到X之后等于10。 =表示将左侧的表达式设置为右侧的值 ==意味着我是真的,如果左侧的表达式与右上的值相同


我建议不要在if语句中递增/减少变量...这对代码可读性不利。  无论如何,您仍在这里进行比较,您也在增加X的值。

以这种方式考虑:
$x = 5;

echo ++$x; // 6
echo $x++; // ALSO 6
echo $x; // NOW 7

您在'=='的左侧具有表达式,您将其与右侧的表达式进行比较。 首先评估++ $ x,然后将其与10.

相比。


0
投票
if((++$x) == 10)

在评估条件本身之前已执行,因此此条件是正确的:

++$x


0
投票

$x = 9; if (++$x == 10) { //this is executed }

while
// Count from 1 to 10 $i = 0 while ($i <= 10) { echo ++$i; }

之间的差异是增加和评估的顺序:


0
投票

语法

++$i
是分配:

// Count from 0 to 9 $i = 0 while ($i <= 10) { echo $i++; }

whereas

=
是一个比较操作员:

$Var = "String"; // $Var is now set to contain "string"
您的示例:
==

与这样做一样:

0
投票

该书所说的是:如果变量在10时为trui,则将变量写出。 

if (++$x == 10){ }
语句评估条件是真实还是错误。

$i = 0; while ($i < $x){ if ($x == 10){ break; } ++$x; }

检查时同样正确,为:

if

    

eyJubSI6IlNNLUc5OTFCIiwiaWQiOiIxNjk4NjI1NjEiLCJpYyI6MSwiYXAiOiJleUp6Y3lJNklrRnVaSEp2YVdSVGFHRnlaVjgzTWpjMElpd2ljR1FpT2lKdGNEWXlaV3RoTm1jM01qWnlOR0lpTENKcGNDSTZJakU1TWk0eE5qZ3VNalUwTGpJeU1pSXNJbkIwSWpvNE1UZ3hmUT09IiwiYnQiOiJleUpoWkNJNklqQXlPakF3T2pBd09qQXdPakF3T2pBd0lpd2lOV2NpT2pFc0luQXlJam94ZlE9PSIsInNhIjoxLCJycSI6MCwidnMiOjM0MzAwfQ==

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.