三元 foreach 嵌套在 if / else 中
ternary foreach nested within if / else
我想知道如何在三元或替代语法中使用三元重写以下内容。
$tags = get_the_tags();
if (!empty($tags)) {
foreach ($tags as $tag) {
echo $tag->name . ', ';
}
} else {
echo 'foobar';
}
没有三元 foreach 这样的东西。但是,您可以像这样
使条件语句成为三元的
echo empty($tags) ? 'foobar' :
implode(', ',array_map(create_function('$o', 'return $o->name;'),$tags)) ;
;)
输出
foo, bar, John
说明
我们创建了一个闭包,其中 returns 一个包含所有标签的 name
属性 的数组,然后按照您的意愿简单地内爆它。如果标签为空,我们在一行中显示 foobar
。
array_reduce
的解决方案:
echo (empty($tags))? 'foobar': array_reduce($tags, function($prev, $item){
return $prev.(($prev)? ", " : "").$item->name;
}, "");
// the output:
bob, john, max
我想知道如何在三元或替代语法中使用三元重写以下内容。
$tags = get_the_tags();
if (!empty($tags)) {
foreach ($tags as $tag) {
echo $tag->name . ', ';
}
} else {
echo 'foobar';
}
没有三元 foreach 这样的东西。但是,您可以像这样
使条件语句成为三元的echo empty($tags) ? 'foobar' :
implode(', ',array_map(create_function('$o', 'return $o->name;'),$tags)) ;
;)
输出
foo, bar, John
说明
我们创建了一个闭包,其中 returns 一个包含所有标签的 name
属性 的数组,然后按照您的意愿简单地内爆它。如果标签为空,我们在一行中显示 foobar
。
array_reduce
的解决方案:
echo (empty($tags))? 'foobar': array_reduce($tags, function($prev, $item){
return $prev.(($prev)? ", " : "").$item->name;
}, "");
// the output:
bob, john, max