Php Html双引号或单引号

Php Html双引号或单引号,php,html,Php,Html,对于打印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 =

对于打印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>";
echo”
";
使用PHP方法2:(单个)

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



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


很少有情况下,我在PHP变量中有HTML,我使用方法2,这样我就不必在每个双引号前键入\了。

为了在Notepad++(我使用的代码编辑器)中的可读性,我倾向于使用方法3。它还将大块HTML保留在PHP之外——它根本不需要在PHP中

在很少的情况下,我在PHP变量中有HTML,我使用方法2,这样我就不必在每个双引号前键入\了。

单引号(通常)比双引号快,因为PHP知道它不必计算其中的任何内容。HTML比echo更快。所以方法3应该是最快的。然而,这里您进入了微优化领域,我将使用最可读、最易于维护的方法。在我看来,这将是方法3,但带有短标记,就像Zend Framework的视图层的工作方式一样:

<input type="text" name="login" value="<?= $f['login'] ?>" />
单引号(通常)比双引号快,因为PHP知道它不必计算引号中的任何内容。HTML比echo更快。所以方法3应该是最快的。然而,这里您进入了微优化领域,我将使用最可读、最易于维护的方法。在我看来,这将是方法3,但带有短标记,就像Zend Framework的视图层的工作方式一样:

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

我的猜测是,最后一个更快,因为php在运行文件之前先对其进行解析,这样运行的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");
?>

我的猜测是,最后一个更快,因为php在运行文件之前先解析文件,这样可以减少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");
?>

如果你在考虑速度,这不会有任何真正的区别,除非你处理的是大量的流量。在这一点上,你会有更重要的事情要担心。也就是说,如果你真的想知道这一点,你可以编写一个简单的基准测试,每次运行多次迭代,并测量每次所需的时间。过早优化是所有问题的根源。如果你不应该通过php函数打印html,如果你考虑到速度,你可以只使用嵌入的
纯html
,这不会有任何真正的区别,除非你处理了大量的流量。在这一点上,你会有更重要的事情要担心。也就是说,如果你真的想了解这一点,你可以编写一个简单的基准测试,每次运行多次迭代,并测量每次所需的时间。过早优化是所有问题的根源,你不应该通过php函数打印html,你可以用嵌入的
Wordpress做
普通html,Drupal用这个方法工作。@SOliver:有趣,我想知道这是什么时候修复的。当然情况并非总是如此,但我已经有一段时间没有亲自运行基准测试了。Wordpress和Drupal使用这种方法工作。@SOliver:有趣,我想知道这是什么时候修复的。当然情况并非总是如此,但我自己运行基准测试已经有一段时间了。
[alex:rc.d] $ php x>/dev/null
30.108315944672
38.896898984909
28.606561183929