Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:这句话是什么意思?如果($isCopy=null!=$id){//do something}_Php_Symfony - Fatal编程技术网

PHP:这句话是什么意思?如果($isCopy=null!=$id){//do something}

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变量

我的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
}
$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参数时要返回的默认值。这取决于请求类的签名和实现。