PHP语法:[&&]命令之间

时间:2020-04-18 作者:Nomikos Strigkos

最近我遇到了以下代码

did_action( \'init\' ) && $scripts->add_inline_script( \'lodash\', \'window.lodash = _.noConflict();\' );
在文件\\wp includes\\script loader中。php

有人知道这是什么意思吗?尤其是两个命令之间的双安培数。我以前从未在PHP中遇到过这种语法,也找不到相关文档。

2 个回复
SO网友:NextGenThemes

我认为WP编码标准实际上不允许或不鼓励这样做。

它的基本意思是“如果是真的,那就去吧”。

这是一个简短的形式:

if ( did_action( \'init\' ) ) {
  $scripts->add_inline_script( \'lodash\', \'window.lodash = _.noConflict();\' );
}
你也可以把它想象成是在这样一个if语句的括号内。

$var = false;

if ( $var && $scripts->add_inline_script( \'...\' ) ) { // As long as $var is false PHP won\'t execute or check what comes after the `&&`

}
该行本身可以重构以使用AND 而不是&& 也这种技术有时被用来让代码“说”英语。示例:

$if_my_value_is_TRUE = TRUE;
$if_my_value_is_TRUE AND print "This get\'s printed to the screen.";

// The exact same thing with `OR` or `||`
$my_value_is_TRUE = FALSE;
$my_value_is_TRUE OR print "This get\'s printed to the screen.";

SO网友:Nomikos Strigkos

一定是这样的:

同时进行或不进行任何操作

因为我发现如果第一个命令不能执行,第二个命令也不能执行

相关推荐

在主机的PHP升级后开始收到警告消息

我使用的儿童主题是2122(客户总是对的)。我最近开始在仪表板顶部和仪表板的Jetpack面板上看到以下警告机器人:“警告:在第81行的/home/leytongr/public\\u html/wp-content/plugins/theme-logo-plugin/themelogo.PHP中使用未定义的常量register\\u设置-假定“register\\u设置”(这将在PHP的未来版本中引发错误)。”这是从第80行开始的代码,您将看到我在这里提出查询的原因:function tl_init()