我可以覆盖PHP内置函数echo()吗?

yre*_*uta 14 php

我最近查看了我的源代码,这真是一团糟.

我的php源码:

echo '<h1>Rar<h1>';
echo '<span>Rar</span>';
echo '<p>Rar</p>';
Run Code Online (Sandbox Code Playgroud)

当我查看呈现页面的浏览器源时:

<h1>Rar</h1><span>Rar</span><p>Rar</p>
Run Code Online (Sandbox Code Playgroud)

有没有办法让我覆盖echo,以便每个输出都以换行符结束,例如

function echo($string)
{
 echo $string . "\r\n";
}
Run Code Online (Sandbox Code Playgroud)

Gor*_*don 10

echo不是一个函数,而是一个语言语句.它无法重新定义.如果您希望美化输出标记,请查看Tidy.


可以做的是使用IDE的搜索/替换方法并替换所有echo语句echo PHP_EOL,.这将在任何输出之前附加OS特定的换行符char.请注意PHP_EOL之后的逗号,因为它很重要.

您可以使用echo输出多个值:

echo 'one', $foo, PHP_EOL,
     'two', $bar, PHP_EOL;
Run Code Online (Sandbox Code Playgroud)

所以没有必要echo在每一行写.

但是,我同意任何建议使用更专用的方法来分离内容和布局的人,例如使用模板视图或HereDoc.

另外,获得漂亮标记的收益很少.如果您使用Firebug之类的工具来检查HTML,那么无论标记确实是多么混乱,您都将拥有格式正确的标记.此外,在拥有大量访问者的网站上,您经常会发现标记缩小,这与您尝试执行的操作相反,只是因为所有这些换行符和标签都会增加页面的重量,从而导致速度变慢页面加载和增加的流量成本.