我想知道如何在三元内或替代语法中使用三元语法重写以下内容。
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
PrintStream old = System.out;
System.setOut(ps);
答案 0 :(得分:4)
没有三元一样的东西。但是,您可以像这样使用条件语句三元
echo empty($tags) ? 'foobar' :
implode(', ',array_map(create_function('$o', 'return $o->name;'),$tags)) ;
)
<强>输出强>
foo,bar,John
<强>解释强>
我们创建一个闭包,返回所有标记的name
属性数组,然后根据需要简单地内爆。如果标签为空,我们会在一行中显示foobar
。
答案 1 :(得分:2)
array_reduce
的解决方案:
echo (empty($tags))? 'foobar': array_reduce($tags, function($prev, $item){
return $prev.(($prev)? ", " : "").$item->name;
}, "");
// the output:
bob, john, max