gpt4 book ai didi

php - 在 PHP 中同时进行运算符和赋值?

转载 作者:可可西里 更新时间:2023-10-31 22:15:09 24 4
gpt4 key购买 nike

在这个声明中:

1 + $newVar = 200;

$newVar 被创建并赋值为 200。这是如何工作的? Precedence rules表明加法首先发生,在赋值之前。我无法解决这个问题。如果首先使用 + 运算符计算变量,如何进行赋值?

PHP 提供了这个小块。这是否意味着这些规则适用,除非它们不适用?

Note:

Although = has a lower precedence than most other operators, PHP will still allow expressions similar to the following: if (!$a = foo()), in which case the return value of foo() is put into $a.

最佳答案

在这种情况下,PHP 在赋值之前计算算术表达式是没有意义的,因为算术运算符返回一个值并且您不能将 value 赋给 value 。因此,在这种情况下,PHP 似乎有点违反了它的规则,而是先进行赋值。

先显示分配的一些代码:

$nVar = 0;
echo (1 + $nVar = 200); //201
echo $nVar; //200

如果 + 先出现(并且在某种程度上是合法且有意义的),它们都会回显 200,因为 (1 + $nVar) 没有设置 $nVar到 1,你会得到赋值的结果。

也看看这个例子:

$nVar = true;
echo (!$nVar = false); // true | 1
echo '<br/>br<br/>';
var_dump($nVar); // false

! 具有更高的优先级并且也是右结合的,但赋值仍然先计算。

关于php - 在 PHP 中同时进行运算符和赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com