jre*_*ton 4 php string multiline
我正在阅读这本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>';
Run Code Online (Sandbox Code Playgroud)
显然我可以打破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>';
Run Code Online (Sandbox Code Playgroud)
这本书的作者在php社区中受到了很好的尊重,这本书得到了高度推荐,并得到了很好的评价......所以我的问题是这样的:
他的方法有什么问题,应该实践吗?
不,它完全没有问题.请注意,引用字符串中的空格,制表符和行返回也将被输出.这很少是一个问题 - 只需记住一些事情.
对我而言,它比你的方式更容易阅读和更难弄错.实际上,您的示例有语法错误.你能找到丢失的点吗?
还有更多的可能性
?>
<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
Run Code Online (Sandbox Code Playgroud)
要么
echo <<<HTML
<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>
HTML;
Run Code Online (Sandbox Code Playgroud)
第一个在每个IDE中被识别为HTML,第二个在PHPStorm中被认为是第二个,因此IDE可以使用HTML语法突出显示它,这与您的两个示例相比是一个巨大的好处(旁注:PHPStorm突出显示html in字符串也是如此,因此它并不坏;)但据我记得它不能验证字符串中的html)
另外,您应该将输出与处理代码分开