PHP 调用变量与直接值之间的性能

PHP Performance Between Call a Variable VS Direct Value

我下面有一个 php 脚本: 我可以这样写第一种方式:

echo"
<table class='fom'><tr class='xbo'><td class='ftd'>Name</td><td><input size='30' maxlength='30'></td></tr></table>" 
<table class='fom'><tr class='xbo'><td class='ftd'>Company</td><td><input size='30' maxlength='30'></td></tr></table>"  
<table class='fom'><tr class='xbo'><td class='ftd'>Contact</td><td><input size='30' maxlength='12'></td></tr></table>";

我也可以这样写第二种方式:

$tb = "<table class='fom'><tr class='xbo'><td class='ftd'>";
$tZ = "</td></tr></table>";
echo"
 $tb."Name</td><td><input size='30' maxlength='30'>".$tz."" 
.$tb."Company</td><td><input size='30' maxlength='30'>".$tz.""  
.$tb."Contact</td><td><input size='30' maxlength='12'>".$tz."";

我更喜欢第二种方法,因为它看起来更整洁而且不会挤压我的屏幕。问题是:

1) 第二种方法会减慢 PHP 解析器的速度吗,我的意思是如果对这个脚本的请求非常高...比如说 milions/s.

2) 有什么方法可以检查我的 MAMP 上此脚本解析的速度性能?

需要一些专家意见。

选项 3 - 不要在 HTML 中使用单引号,而是简单地从 PHP 中跳出以执行 HTML。如果您需要插入变量,那么就这样做。您也不应该使用 <tables> 进行页面布局,而是使用 <divs> 和 CSS。

将一堆 HTML 与您的 PHP 变量作为字符串连接起来会更容易阅读,您还可以保持 HTML 格式,并且不会影响性能足以让您注意到它。

?>
<div class="fom">
    <div class="xbo">
        <label class="ftd">Name</label>
        <input size="30" maxlength="30" name="name" value="<?= (!empty($_POST['name']) ? htmlentities($_POST['name']) : '') ?>">
    </div>
</div>
<div class="fom">
    <div class="xbo">
        <label class="ftd">Company</label>
        <input size="30" maxlength="30" name="company" value="<?= (!empty($_POST['company']) ? htmlentities($_POST['company']) : '') ?>">
    </div>
</div> 
<div class="fom">
    <div class="xbo">
        <label class="ftd">Contact</label>
        <input size="30" maxlength="12" name="contact" value="<?= (!empty($_POST['contact']) ? htmlentities($_POST['contact']) : '') ?>">
    </div>
</div>
<?php

您甚至可以进一步抽象,并通过使用视图将 HTML 与 PHP 逻辑分开。

你会有一个简单的函数来加载你的 HTML ,你将你的 PHP 变量传递给它,然后它 returns 用于存储到变量中的渲染版本(部分)或回声。

function view($view = '', $data = array()) {

    if (file_exists($view) === false) {
        return 'Partial view not Found';
    }

    if (!empty($data)) {
        extract($data);
    }

    ob_start();
    require($view);
    return ob_get_clean();
}

然后您可以像这样使用它:

echo view('./views/homepage.php', ['result' => $result]);

可以这样格式化。

$td_class = 'class="ftd"';
echo '<table class="fom"><tr class="xbo"><td class="ftd">';

echo '<tr>
        <td ' . $td_class .'>Name</td>
        <td><input size="30" maxlength="30"></td>
      </tr>';
echo '<tr>
        <td ' . $td_class . '>Company</td>
        <td><input size="30" maxlength="30"></td>
      </tr>';
echo '<tr>
        <td ' . $td_class . '>Contact</td>
        <td><input size="1" maxlength="12"></td>
      </tr>';

echo '</table>';

不使用双引号"而使用单引号' PHP中的单引号和双引号字符串有什么区别? 。 您还可以阅读 在 php5 中使用内联字符串与连接的速度差异?