Php Html双或单引号

时间:2012-02-20 16:55:06

标签: php html

for print html:什么更好,更快,更优化?!?

 echo "<tr height=\"22\">
    <form action = \"{$URL}/admin/edit.php\" method=\"POST\">
      <input type=\"hidden\" name=\"login\"> 
      <td width=\"15%\" bgcolor=\"$bgcolor\">&nbsp;<input type = \"text\" name = \"login\" value=" . $f['login'] . "></td>
      <td width=\"15%\" bgcolor=\"$bgcolor\">&nbsp; <input type = \"password\" name = \"password\" value=" . $f['pass'] . "> </td>
    </form>
        </tr>";

使用PHP方法2 :(单个)

 echo ' <tr><form action = "' . URL . '/admin/editadmins.php" method="POST"> ';
 echo ' <td align="left" valign="top"><input type = "text" name = "login" value = "' . $f['login'] . '"></td>';
 echo ' <td align="left" valign="top"><input type = "password" name = "password" value = "' . $f['pass'] . '"></td></form></tr>';

方法3 :(使用Html和Php回声)

<tr height="22">
<form action = "../admin/editadmins.php" method="POST">
<td align="left" valign="top"><input type = "text" name = "login" value = "<?PHP echo $f['login']; ?>"></td>
<td align="left" valign="top"><input type = "text" name = "password" value = "<?PHP echo $f['pass']; ?>"></td>
</form>
<tr>

感谢。

3 个答案:

答案 0 :(得分:1)

我的猜测是,最后一个更快,因为php在运行之前解析文件,而不是运行。

无论如何,即使你循环1000次,我们也在谈论不明显的差异。 最佳做法是使用更易读的方法。

如果你愿意,你仍然可以替补,这里是一个片段及其结果:

<?php
$start = microtime(true);
for($i = 0; $i < 10000000; $i++){
 echo "<tr height=\"22\">
    <form action = \"{$URL}/admin/edit.php\" method=\"POST\">
      <input type=\"hidden\" name=\"login\">
      <td width=\"15%\" bgcolor=\"$bgcolor\">&nbsp;<input type = \"text\" name = \"login\" value=" . $f['login'] . "></td>
      <td width=\"15%\" bgcolor=\"$bgcolor\">&nbsp; <input type = \"password\" name = \"password\" value=" . $f['pass'] . "> </td>
    </form>
        </tr>";
}
fwrite(STDERR,(microtime(true)-$start)."\n");
$start = microtime(true);

for($i = 0; $i < 10000000; $i++){
 echo ' <tr><form action = "' . URL . '/admin/editadmins.php" method="POST"> ';
 echo ' <td align="left" valign="top"><input type = "text" name = "login" value = "' . $f['login'] . '"></td>';
 echo ' <td align="left" valign="top"><input type = "password" name = "password" value = "' . $f['pass'] . '"></td></form></tr>';
}

fwrite(STDERR,(microtime(true)-$start)."\n");
$start = microtime(true);

for($i = 0; $i < 10000000; $i++){
?>
<tr height=\"22\">
<form action = "../admin/editadmins.php" method="POST">
<td align="left" valign="top"><input type = "text" name = "login" value = "<?PHP echo $f['login']; ?>"></td>
<td align="left" valign="top"><input type = "text" name = "password" value = "<?PHP echo $f['pass']; ?>"></td>
</form>
<tr>

<?php
}
fwrite(STDERR,(microtime(true)-$start)."\n");
?>

第一个比第二个快,因为有更多的回声调用,如果你有相同数量的回声,'会比“

更快

获胜者仍然是最后一个

结果:

[alex:rc.d] $ php x>/dev/null
30.108315944672
38.896898984909
28.606561183929

答案 1 :(得分:0)

为了在Notepadd ++(我使用的代码编辑器)中的可读性,我倾向于使用方法3.它还将大块的HTML保留在PHP之外 - 毕竟它不需要在那里。

在极少数情况下我在PHP变量中有HTML,我使用方法2,因此我不必在每个双引号之前输入\。

答案 2 :(得分:0)

单引号(通常)比双引号快,因为PHP知道它不必评估其中的任何内容。 HTML比echo更快。所以方法3 应该是最快的。但是,你在这里进入微优化领域,我会选择最易读,最容易维护的方法。在我看来,这将是方法3,但使用短标记,就像Zend Framework的视图层的工作方式:

<input type="text" name="login" value="<?= $f['login'] ?>" />