更好的方式附加到字符串

时间:2013-01-24 17:55:37

标签: php

当我使用foreach向字符串添加内容时,我始终使用$x .= 'content'但首先我声明变量$x = '',这似乎是一个额外的代码行需要。有更好的方法吗?

这是一个很好的例子:

$options = array('Link 1', 'Link 2', 'Link 3')
$output = '';
foreach($options as $value) $output .= '<a href="#">' . $value . '</a>';
echo $output;

3 个答案:

答案 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警告(默认情况下不显示)。