pba*_*ney 0 php refactoring if-statement control-structure
我的直觉告诉我,对于以下代码,有一个更好的,也许是单行重构:
if (isset($x))
{
if (isset($y))
{
$z = array_merge($x,$y);
}
else
{
$z = $x;
}
}
else
{
$z = $y;
}
Run Code Online (Sandbox Code Playgroud)
如果我不担心警告错误,一个简单的array_merge($x,$y)工作,但我想知道一个更好的方法来做到这一点.思考?
$z = array_merge(
isset($x) ? $x : array(),
isset($y) ? $y : array()
);
Run Code Online (Sandbox Code Playgroud)
如果$x和$y未设置,这将返回一个空数组.如果只设置了一个,它将返回该数组.如果两者都设置,它将返回array_merge()数组上的运行结果.
这不是上面代码的行为,但我相信这是你想要的行为.(我相信,在你的代码中,$z如果两个不会是一个数组$x和$y未设置.)
顺便说一句,这段代码假设if $x和$yset,它们是数组.如果不是这种情况,您应该运行is_array()它们以确认它们是数组或使用类型juggling以确保它们在array_merge()运行时是数组.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |