Php Html双引号或单引号
对于打印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\"> <input type =
echo "<tr height=\"22\">
<form action = \"{$URL}/admin/edit.php\" method=\"POST\">
<input type=\"hidden\" name=\"login\">
<td width=\"15%\" bgcolor=\"$bgcolor\"> <input type = \"text\" name = \"login\" value=" . $f['login'] . "></td>
<td width=\"15%\" bgcolor=\"$bgcolor\"> <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\"> <input type = \"text\" name = \"login\" value=" . $f['login'] . "></td>
<td width=\"15%\" bgcolor=\"$bgcolor\"> <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\"> <input type = \"text\" name = \"login\" value=" . $f['login'] . "></td>
<td width=\"15%\" bgcolor=\"$bgcolor\"> <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