gpt4 book ai didi

php - PHP中是否有短路或返回最左边的值?

转载 作者:IT王子 更新时间:2023-10-28 23:51:56 25 4
gpt4 key购买 nike

在某些语言中,您可以这样做

$a = $b OR $c OR die("无值(value)");

也就是说,OR 将短路,仅从左到右评估值,直到找到真值。但此外,它返回 被评估的实际值,而不仅仅是 true

在上面的例子中,在 PHP 中,如果 $a$b 是非假值,否则它将死亡

所以写了一个函数first,用作

$a = first($a, $b, die("no value"));

返回 $a$b。但是,它不会短路——它总是会

PHP中是否有短路OR返回实际值?

编辑:我给出的例子有一些很好的答案,但我想我的例子并不是我的意思。让我澄清一下。

$a = func1() OR func2() OR func3();

这些函数中的每一个都进行了非常非常激烈的计算,所以我只想对每个表达式最多计算一次。对于第一个返回真值的人,我希望将实际值存储在 $a 中。

我认为我们可以排除编写函数,因为它不会短路。并且条件运算符的答案将对每个表达式进行两次评估。

最佳答案

不,没有,在我看来,这是 Rasmus Lerdorf 在设计 PHP 时做出的错误决定之一,大多数人为了溺爱不称职的开发人员而阻碍了有能力的开发人员。

编辑:在 PHP 5.3 及更高版本中,您可以编写 $a = $b ?: $c,甚至可以编写 $a = $b ?: $c ?: $d。仍然不如非脑损伤的逻辑运算符,但它是一些东西。

关于php - PHP中是否有短路或返回最左边的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539204/

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