-1

当我使用 aforeach向字符串添加内容时,我总是使用$x .= 'content'但首先我声明了该变量$x = '',这看起来像是不需要的额外代码行。有一个更好的方法吗?

这是一个很好的例子:

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

3 回答 3

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;
于 2013-01-24T18:06:06.880 回答
1

如果你想在一行中做这样的事情,你可以这样做:

foreach() {
    $output = isset($output) ? $output . $more : $more;
}

但这是一样的,只是用三元运算符写的:-)

于 2013-01-24T18:02:36.733 回答
0

不,不是干净的代码。理论上,您可以将“$output = ''”这一行去掉。结果是一样的。然而,这是非常糟糕的风格,更容易导致错误,并且由于这些原因会生成级别 NOTICE 的 PHP 警告(默认情况下不显示)。

于 2013-01-24T18:00:18.000 回答