多行单引号字符串

时间:2012-06-12 20:16:37

标签: 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>';

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

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分: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

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;

第一个在每个IDE中被识别为HTML,第二个在PHPStorm中被认为是第二个,因此IDE可以使用HTML语法突出显示突出显示它,这是一个巨大的好处。你的两个示例(旁注:PHPStorm也在字符串中突出显示html,因此它并不坏;)但据我记得它不能在字符串中验证html)

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