4

我正在阅读这本 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 社区中很受尊敬,这本书得到了强烈的推荐和很好的评论……所以我的问题是:

他的方法有什么问题吗?应该这样做吗?

4

2 回答 2

5

不,这完全没有问题。请注意,带引号的字符串中的空格、制表符和换行符也会被输出。这几乎不是问题——只是需要记住的事情。

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

于 2012-06-12T20:18:52.870 回答
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-syntax-highlighting 突出显示它,与您的两个示例相比,这是一个巨大的好处(旁注:PHPStorm 在字符串也是如此,因此还不错;)但据我所知,它无法验证字符串中的html)

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

于 2012-06-12T20:22:34.797 回答