我的php文件中有下面这段遗留代码:
$id = $request->getParameter('id', null);
if ($isCopy = null !== $id) {
// Do domething
}
我所理解的是,它从URL获取参数'id‘并检查它是否为空。我想了解一下这个逻辑是如何工作的?if ($isCopy = null !== $id)
发布于 2019-10-04 16:48:40
在语句中
if ($isCopy = null !== $id) {
PHP将根据其求值规则对运算符进行求值。比较运算符(如!==
)在=
之前进行计算。
因此,首先评估null !== $id
。null与id
进行比较。注意,这不是相同的比较运算符!==
,因此它将计算为true (如果id
的值和类型不为空)或false (id
的值和类型不为空)。
最后,将赋值操作$isCopy
赋值给比较结果。它要么为真,要么为假。
如果$id
不是null类型,则$isCopy
将为true,因此仅当id
不是null类型时才会处理if语句。
注意,$id
在这里可以有一个false值,但不是null类型。
虽然PHP在逻辑上不需要,但最好使用圆括号来强制优先。括号具有最高的运算符优先级。这使得代码更加清晰,并且可以在程序员不确定运算符求值的顺序时帮助消除错误。
if ($isCopy = (null !== $id)) {
https://stackoverflow.com/questions/58232482
复制相似问题