gpt4 book ai didi

php - PHP有什么更好的方法来编写if +三元函数?

转载 作者:行者123 更新时间:2023-12-02 07:18:11 25 4
gpt4 key购买 nike

基本上,它只是在两个值之间切换。如果输入X,则得到6;如果输入6,则得到X。如果输入其他任何值,则值将保持不变。

function change($val) {
if ($val == "X" || $val == 6) { $val = $val=="X" ? 6 : "X"; } else
if ($val == "J" || $val == 3) { $val = $val=="J" ? 3 : "J"; }
return $val;
}

这是我实际使用的功能的简化版本,因此无需询问为什么需要它。我将其作为and数组进行了尝试,但是由于我将输入其他需要输出而无需更改的数字,因此它不起作用。它需要输入所有数字和字母,但只能更改功能中的数字和字母,其他字符应保持不变。

预期的输出。
change(6)
X
change(8)
8
change(X)
6
change(L)
L
change(3)
J

因此,我基本上是在寻找一种更简单的方法来编写此函数(如果有)。在我看来,这看起来很丑陋,但是如果没有更好的方法,那就很好。

编辑:进行编辑以添加其他条件,因为我没有意识到代码对于一个或多个条件可能会非常不同。您看到的实际代码有五个条件。

最佳答案

如果您使用的是PHP> 7.0,则可以使用以下解决方案:

function change($val)
{
return [6 => 'X', 'X' => 6][$val] ?? $val;
}

对于较低的版本,可能是这样的:
function change($val)
{
$changes = [6 => 'X', 'X' => 6];

return isset($changes[$val]) ? $changes[$val] : $val;
}

关于php - PHP有什么更好的方法来编写if +三元函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55019805/

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