Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 回声vs变量_Php_Optimization - Fatal编程技术网

Php 回声vs变量

Php 回声vs变量,php,optimization,Php,Optimization,假设我有$variable保存了超过500KB的信息 while ($row = mysqli_fetch_assoc($selectFromTable)) { $variable .= "<p>$row[info]</p>"; } while($row=mysqli\u fetch\u assoc($selectFromTable)) { $variable.=“$row[info]”; } 或 while($row=mysqli\u fetch\u ass

假设我有
$variable
保存了超过500KB的信息

while ($row = mysqli_fetch_assoc($selectFromTable)) 
{
   $variable .= "<p>$row[info]</p>";
}
while($row=mysqli\u fetch\u assoc($selectFromTable))
{
$variable.=“$row[info]

”; }

while($row=mysqli\u fetch\u assoc($selectFromTable))
{
回声“$row[info]

”; }
就优化而言,立即回显
信息是否比将其保存到
变量
更好

我无法做出决定,因为我看不到性能上的差异,因为我不知道使用什么工具来监控响应时间。有什么建议吗


尽管在性能上没有足够的差异,但我仍然想学习如何优化编码。

您列出的两段代码在速度或内存使用方面没有显著差异。它们都构建了一个新字符串,其中包含
$row['info']
的值,该值包含在
HTML元素中

您可以将每个字符串作为单个参数传递给
echo

echo "<p>", $row['info'], "</p>";
echo“”,$row['info'],“

”;
这样可以避免创建新字符串,使用更少的内存,运行速度略快(除非在循环中执行数千次,否则提高的速度并不显著)

了解语言结构


另外请注意,
$row[info]
不正确。正确的方法是
$row['info']
。这就是为什么。

您需要对变量执行一些操作,而不仅仅是在第一个循环中保存一些数据

在当前设置中,只有可变存储的第一个循环将始终更快,因为IO(输入/输出)设备的操作速度较慢,这意味着在屏幕上进行回波打印输出


但是如果您在变量语句之后添加一个echo,那么仅使用单个echo的循环显然会更快。

。它们都可以执行不同的目的,如果您不需要将信息来回传递,那么您可以直接将其回显出来。如果要将数据库逻辑与表示层分离,请将数据存储在一个数组中并将其传递出去。@MehravishTemkar我正在权衡。我要么调用上面的函数,这样我就可以通过将一些信息保存到变量来重用它们,要么在可以立即打印的地方调用该函数。如果优化有巨大的影响,那么我必须选择打印出来。@NigelRen你明白我的意思了。我可以选择将信息传回/传回,或者直接回显,但无法决定。我很担心像谷歌这样的机器人如何抓取我的网站。我应该更关注优化还是信息的重用。我倾向于不优化这样的东西,在我的代码中,我更关注的是保持处理层和表示层的分离。虽然拥有500kb的数据一开始看起来并不是很优化!我经常使用$row[info]而不是$row['info'],因为它更简单,而且对我来说也很好。我要换成$row['info']吗?你看过文档了吗?它解释了为什么
$row[info]
不正确。它在PHP5、PHP7.0和7.1中生成一个通知。它将在PHP8中升级为一个错误(因为它是一个错误)。
echo "<p>", $row['info'], "</p>";