gpt4 book ai didi

php - && 之后的条件是否总是被评估

转载 作者:IT王子 更新时间:2023-10-29 00:52:34 25 4
gpt4 key购买 nike

我有这个 if测试以下 2 个条件的语句。第二个是函数goodToGo()所以我想调用它,除非第一个条件已经为真

$value = 2239;

if ($value < 2000 && goodToGo($value)){
//do stuff
}

function goodToGo($value){
$ret = //some processing of the value
return $ret;
}

我的问题是关于 2 if 条件 $value < 2000 && goodToGo($value) .他们都得到评估还是只有在第一个为真时才评估第二个?

换句话说,以下 2 个 block 是否相同?

if($value < 2000 && goodToGo($value)) {
//stuff to do
}

if($value < 2000) {
if (goodToGo($value)){
//stuff to do
}
}

最佳答案

不——不会总是执行第二个条件(这使您的示例等效)。

PHP 的 &&||andor 运算符被实现为“短路”运营商。一旦发现强制整个条件的结果的条件,后续条件的评估就会停止。

来自 http://www.php.net/manual/en/language.operators.logical.php

// --------------------
// foo() will never get called as those operators are short-circuit

$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());

关于php - && 之后的条件是否总是被评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2535515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com