2012-06-12 36 views
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社区深受尊重,这本书值得推荐,是审查好...所以我的问题是这样的:

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

+0

有没有什么不对的地方,但考虑使用['定界符syntax'(HTTP:// www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)用于多行字符串。 – Josh

+1

为什么第二个版本比第一个版本更容易阅读?我会说相反,所有在那里添加的标点符号... – deceze

+0

第二种方法是我学会了回复多行字符串的原始方式。它让我知道没有多余的空格或制表符。但正如你所看到的,我可以很容易地搞砸了:在第2行丢失了一个点。 – jremydeaton

回答

5

不,根本没有什么问题。请注意,引用字符串中的空格,制表符和换行符也会被输出。这很少是一个问题 - 只需记住一些事情。

对我来说,阅读起来要容易一点,而且比你的方式更难以弄错。事实上,你的例子有一个语法错误。你能找到丢失的点吗?

+0

找到了! :)我想我会需要谨慎的任何一种方式.. – jremydeaton

+1

此功能在NetBeans中。如果你正在输入一个字符串,然后你按回车键,那么当前行将被引用关闭,并且新行被连接。 – Broncha

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,因此集成开发环境可以通过突出显示它在HTML的语法高亮,这是一个巨大的受益比你两个例子(旁注:PHPStorm凸显字符串HTML过,因此并不坏;)但据我记得它不能验证字符串中的HTML)

另外,你应该从处理代码中分离输出 -

+0

你的第一个是我的意思是突破php – jremydeaton

+0

啊,好的,我明白了。如果您将视图与应用程序层分开(可能会将其称为“模板”),那么这就是_always_选项:) – KingCrunch