【发布时间】:2012-06-12 20:16:36
【问题描述】:
我正在阅读这本 PHP & MySQL 书籍,但在回显单引号字符串的多行时,我遇到了一些与我习惯的完全不同的东西。
给出的例子是这样的:
echo '<table align="center" cellspacing="0" cellpadding="5" width="75%">
<tr>
<td align="left"><b>This</b></td>
<td align="left"><b>That</b></td>
<td align="left"><b>Then</b></td>
<td align="left"><b>When</b></td>
<td align="left"><b>What</b></td>
</tr>';
显然我可以摆脱 PHP 并使用 HTML,但这并不总是一种选择。当我没有那个选项时,我通常会分解我的字符串以便于阅读:
echo '<table align="center" cellspacing="0" cellpadding="5" width="75%">' .
'<tr>'
'<td align="left"><b>This</b></td>' .
'<td align="left"><b>That</b></td>' .
'<td align="left"><b>Then</b></td>' .
'<td align="left"><b>When</b></td>' .
'<td align="left"><b>What</b></td>' .
'</tr>';
这本书的作者在 php 社区中很受尊敬,这本书得到了强烈的推荐和很好的评论……所以我的问题是:
他的方法有什么问题吗?应该这样练习吗?
【问题讨论】:
-
没有什么问题,不过多行字符串可以考虑使用
heredoc syntax。 -
为什么第二版比第一版更容易阅读?我会说相反,所有添加的标点符号都在那里......
-
第二种方式是我最初学会的回显多行字符串的方式。知道没有多余的空格或制表符让我感到很温暖。但如您所见,我很容易搞砸:第 2 行缺少一个点。
-
如果只看性能,在没有额外空格的情况下输出 HTML 会快一点,但也许作者这样做是因为他希望输出人类也可读的 HTML:- ) 此外,所有这些字符串连接都会增加一点开销。
-
“显然我可以摆脱 PHP 并使用 HTML,但这并不总是一种选择。” - 不正确。当涉及到输出文本时,这始终是一个选项。