当我使用foreach
向字符串添加内容时,我始终使用$x .= 'content'
但首先我声明变量$x = ''
,这似乎是一个额外的代码行需要。有更好的方法吗?
这是一个很好的例子:
$options = array('Link 1', 'Link 2', 'Link 3')
$output = '';
foreach($options as $value) $output .= '<a href="#">' . $value . '</a>';
echo $output;
答案 0 :(得分:3)
你可以尝试一个三元运算符,如下所示,但同样,这是更多的代码。除非我弄错了,否则没有'非'声明方式。
$options = array('Link 1', 'Link 2', 'Link 3');
foreach($options as $value) (isset($output) ? $output .= '<a href="#">' . $value . '</a>' : $output = '<a href="#">' . $value . '</a>');
echo $output;
答案 1 :(得分:1)
如果你想要一行,你可以这样做:
foreach() {
$output = isset($output) ? $output . $more : $more;
}
但这是相同的,只是用三元运算符写的: - )
答案 2 :(得分:0)
不,没有干净的代码。从理论上讲,你可以离开“$ output =''”这一行。结果将是相同的。然而,这是非常糟糕的样式,导致更容易出错并且由于这些原因生成级别NOTICE的PHP警告(默认情况下不显示)。