PHP 中的运算符 = 与 ==

0 php operators

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

$x = 5;
$x == 5: true
Run Code Online (Sandbox Code Playgroud)

...说得通。然而,书中给出的一个例子让我很困惑:

if (++$x == 10)
    echo $x;
Run Code Online (Sandbox Code Playgroud)

为什么==?我们不是想说“如果 ++$x 等于 10,则 echo $x”...?那么看起来就像:if (++$x = 10)。前者就像在条件语句中提出问题,这是不合逻辑或多余的。

Maj*_*ons 5

==意味着平等,所以条件如下:

如果预增$x等于10,则回显$x

Single=是赋值,其中变量被设置为包含一个值:

$word = 'hello';
$number = 5;
// etc.

echo "I said $word $number times!";
Run Code Online (Sandbox Code Playgroud)

关于增量运算符:

当您学习 PHP(和/或其他语言)时,您会看到类似++$x和 的内容。$i--这些是递增/递减运算符。它们相对于它们所操作的变量的位置很重要

如果它们放置在变量之前++$x,例如,则它是预递增/递减。这意味着该操作是在对变量执行任何其他操作之前执行的。如果放在后面,如$x++,则为后自增/自减,表示操作是在之后执行的。

在示例脚本中最容易看到:

$x = 5;

echo ++$x; // 6
echo $x++; // ALSO 6
echo $x; // NOW 7
Run Code Online (Sandbox Code Playgroud)