Php 函数调用之间的两个符号

Php 函数调用之间的两个符号,php,Php,两个分隔函数调用的符号是什么?注意:这不在任何if语句或case语句的范围内 像这样: functionCallOne() && functionCallTwo(); 这是短路和运算符,意味着只有当第一个函数返回true时,才会对第二个函数(或表达式/语句)求值。如果第一个函数返回false,则第二个函数(及其所有副作用)甚至不会执行,因为PHP知道,如果其中一个表达式是false,则整个表达式永远不可能是true,它相当于 if ( functionCallOne() ) {

两个分隔函数调用的符号是什么?注意:这不在任何if语句或case语句的范围内

像这样:

functionCallOne() && functionCallTwo();

这是短路和运算符,意味着只有当第一个函数返回true时,才会对第二个函数(或表达式/语句)求值。

如果第一个函数返回false,则第二个函数(及其所有副作用)甚至不会执行,因为PHP知道,如果其中一个表达式是
false
,则整个表达式永远不可能是
true
,它相当于

if ( functionCallOne() ) {
  functionCallTwo();
}

它只是使用短路,使这3行只占用一行

逻辑AND运算符
&
是一个短路运算符。这意味着只有当第一个操作数为
true
时,它才会继续检查第二个操作数。如果第一个操作数是
false
,则整个表达式只能是
false
,因此检查第二个操作数没有意义,因此它会在未检查第二个操作数的情况下中断操作


在这种情况下,此特征用于表示“执行
functionallone
,如果执行成功,则执行
functionalltwo

这可能是一种有效的节省空间措施,但在我看来,它对清晰度有不利影响。未受训练的观察者可能很容易假设一个大的粗体AND运算符将调用function1和function2。不是功能1,然后可能是功能2,在好的一天。当然,程序员确实喜欢为了自己的利益而过于聪明@在Runneversets中,这比你想象的更常见,并且在其他语言中使用,比如shell脚本。我相信它有很好的有效用途。对这个问题最流行(也最被接受)的回答仅将其目的描述为“只占一行”。代码越短越好。@Runneversets+1,我通常更喜欢1行if语句:
if(functionCallOne())functionCallTwo()相同的行数,更清晰“有所有的副作用”是什么意思?只写
function_a()和&function_b()是有用的如果函数_b()有返回值以外的任何副作用。