Has*_*sen 2 php function ternary
基本上,它只是在两个值之间切换。如果输入XI,则得到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;
}
Run Code Online (Sandbox Code Playgroud)
这是我实际上使用的功能的简化版本,因此无需询问为什么需要它。我将其作为and数组进行了尝试,但由于我将输入其他需要输出而无需更改的数字,因此它不起作用。它需要输入所有数字和字母,但只能更改功能中的数字和字母,其他字符应保持不变。
预期的输出。
change(6)
X
change(8)
8
change(X)
6
change(L)
L
change(3)
J
Run Code Online (Sandbox Code Playgroud)
因此,我基本上是在寻找一种更简单的方法来编写此函数(如果有)。在我看来,这看起来很丑陋,但是如果没有更好的方法,那就很好。
编辑:进行编辑以添加其他条件,因为我没有意识到代码对于一个或多个条件可能会非常不同。实际的代码具有五个条件。
如果您使用的是PHP> 7.0,则可以使用以下解决方案:
function change($val)
{
return [6 => 'X', 'X' => 6][$val] ?? $val;
}
Run Code Online (Sandbox Code Playgroud)
对于较低版本,它可能像:
function change($val)
{
$changes = [6 => 'X', 'X' => 6];
return isset($changes[$val]) ? $changes[$val] : $val;
}
Run Code Online (Sandbox Code Playgroud)