PHP:这句话是什么意思?如果($isCopy=null!=$id){//do something}
我的php文件中有以下遗留代码:PHP:这句话是什么意思?如果($isCopy=null!=$id){//do something},php,symfony,Php,Symfony,我的php文件中有以下遗留代码: $id = $request->getParameter('id', null); if ($isCopy = null !== $id) { // Do domething } 我理解的是,它从URL获取参数“id”,并检查它是否为NULL。 我想了解这种逻辑是如何运作的如果($isCopy=null!=$id)它是在检查$id是否不为空,或者是在$isCopy变量中分配结果,该变量为真或假它是在检查$id是否为空,或者是在$isCopy变量
$id = $request->getParameter('id', null);
if ($isCopy = null !== $id) {
// Do domething
}
我理解的是,它从URL获取参数“id”,并检查它是否为NULL。
我想了解这种逻辑是如何运作的<代码>如果($isCopy=null!=$id)它是在检查
$id
是否不为空,或者是在$isCopy
变量中分配结果,该变量为真或假它是在检查$id
是否为空,或者是在$isCopy
变量中分配结果,该变量为真或假这被解释为:
$id = $request->getParameter('id', null);
if ($isCopy = (null !== $id)) {
// Do domething
}
$isCopy从null接收布尔结果!==$id比较,则if语句使用它的值
但是,应该避免这种构造。
改用这个:
$id = $request->getParameter('id', null);
if ($id !== null) {
// Do domething
}
或者,如果要将求值向下传递到另一个代码块,并希望突出显示空id的含义:
$id = $request->getParameter('id', null);
$isCopy = $id !== null;
if ($isCopy) {
// Do domething
}
其解释如下:
$id = $request->getParameter('id', null);
if ($isCopy = (null !== $id)) {
// Do domething
}
$isCopy从null接收布尔结果!==$id比较,则if语句使用它的值
但是,应该避免这种构造。
改用这个:
$id = $request->getParameter('id', null);
if ($id !== null) {
// Do domething
}
或者,如果要将求值向下传递到另一个代码块,并希望突出显示空id的含义:
$id = $request->getParameter('id', null);
$isCopy = $id !== null;
if ($isCopy) {
// Do domething
}
在声明中
if ($isCopy = null !== $id) {
PHP将根据其评估规则评估运算符。比较运算符(如!==
)在=
之前求值
所以null!==$首先计算id
。null与id
进行比较。注意:这与比较运算符不同==
因此它将计算true(如果id
的值和类型不为null)或false(如果id
的值和类型不为null)
最后,分配操作$isCopy
被分配给比较结果。它要么是真的,要么是假的
如果$id
不是null类型,则$isCopy
将为true,因此仅当id
不是null类型时才会处理if语句
请注意,$id
此处可能有一个假值,但不是空类型
尽管PHP在逻辑上不是必需的,但最好使用括号强制执行优先级。括号具有最高的运算符优先级。这使代码更清晰,并且可以帮助消除程序员不确定运算符求值顺序时的错误
if ($isCopy = (null !== $id)) {
在声明中
if ($isCopy = null !== $id) {
PHP将根据其评估规则评估运算符。比较运算符(如!==
)在=
之前求值
所以null!==$首先计算id
。null与id
进行比较。注意:这与比较运算符不同==
因此它将计算true(如果id
的值和类型不为null)或false(如果id
的值和类型不为null)
最后,分配操作$isCopy
被分配给比较结果。它要么是真的,要么是假的
如果$id
不是null类型,则$isCopy
将为true,因此仅当id
不是null类型时才会处理if语句
请注意,$id
此处可能有一个假值,但不是空类型
尽管PHP在逻辑上不是必需的,但最好使用括号强制执行优先级。括号具有最高的运算符优先级。这使代码更清晰,并且可以帮助消除程序员不确定运算符求值顺序时的错误
if ($isCopy = (null !== $id)) {
我明白了,所以
null
在$request->getParameter('id',null)中
是否有任何用途?通常它定义了在请求中不存在id参数时要返回的默认值。这取决于请求类的签名和实现是否有任何用途?通常它定义了在请求中不存在id参数时要返回的默认值。这取决于请求类的签名和实现。