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 中使用内联字符串与连接的速度差异?
我下面有一个 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 中使用内联字符串与连接的速度差异?