Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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 `if`不';当发现条件为false时,t执行其他函数_Php_If Statement_Terminology - Fatal编程技术网

Php `if`不';当发现条件为false时,t执行其他函数

Php `if`不';当发现条件为false时,t执行其他函数,php,if-statement,terminology,Php,If Statement,Terminology,在PHP中,我可以做到这一点: if (function1() && function2()) { doSomething(); } 如果function1()返回false,则不会执行function2() 我已经忘记了这个语言功能的名称。。。你叫它什么?这个叫做。如果你不想这种行为(想让两个函数都执行),就用一个&来代替。@Ralph:这实际上有点误导,因为&PHP中不是逻辑运算符,而是位运算符。它利用了PHP强制转换的工作方式,但可能会导致一些奇怪的错误。需要明

在PHP中,我可以做到这一点:

if (function1() && function2()) {
     doSomething();
}
如果
function1()
返回false,则不会执行
function2()


我已经忘记了这个语言功能的名称。。。你叫它什么?

这个叫做。

如果你不想这种行为(想让两个函数都执行),就用一个
&
来代替。@Ralph:这实际上有点误导,因为&PHP中不是逻辑运算符,而是位运算符。它利用了PHP强制转换的工作方式,但可能会导致一些奇怪的错误。需要明确的是,函数的布尔返回值被隐式强制转换为整数,按位的
将根据这些整数进行计算。换句话说,
gettype(true和false)
将返回
boolean
,但是
gettype(true和false)
将返回
integer
。当在
if
条件(或其他控制结构)中使用时,该整数返回值将被重新转换回布尔值。是的,AgentRundrum所说的。。。使用一些类型转换,但确实有效。你能举出一个例子,说明它会导致一个bug(对于布尔人)Paolo吗?@Ralph:我只是想澄清一下,我的评论只是对机制的解释,而不是对你的编码风格的辩护。如果在需要将函数作为第二个操作数运行时确实需要确保表达式不会短路,那么我建议您首先运行函数,并将其结果存储在变量中,然后在条件表达式中使用。你所做的事情要明显得多,并不依赖于读者可能无法完全理解的(相对)模糊的语言结构。