多行单引号字符串

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社区中受到了很好的尊重,这本书得到了高度推荐,并得到了很好的评价......所以我的问题是这样的:

他的方法有什么问题,应该实践吗?

Sco*_*ers 5

不,它完全没有问题.请注意,引用字符串中的空格,制表符和行返回也将被输出.这很少是一个问题 - 只需记住一些事情.

对我而言,它比你的方式更容易阅读和更难弄错.实际上,您的示例有语法错误.你能找到丢失的点吗?


Kin*_*nch 5

还有更多的可能性

?>
<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)

另外,您应该将输出与处理代码分开