您的位置:首页 > 编程语言 > PHP开发

如何优化php字符串echo输出 逗号也可作php连接符

2012-11-20 11:44 363 查看
今天发现有这么一段代码:发现逗号也可以做php连接符

$file = 'custom.txt';
if(file_exists($file)) {
echo $file,'存在<br />';
echo '上次修改时间是',date('Y-m-d H:i:s',filemtime($file));
} else {
echo '不存在 ';
}

如下4种方式,都能得到同样的结果,但是,只有第4种方式是最好的。

$foo = 'John SMITH';
echo "Hello $foo, welcome on my website.";
echo "Hello " . $foo . " welcome on my website.";
echo 'Hello ' . $foo . ' welcome on my website.';
echo 'Hello ', $foo , ' welcome on my website.';

我敢肯定你们都知道echo '$foo'是不会工作的,但是,我十分肯定的告诉你,那就是使用双引号去显示一个简单的信息,那是非常不好的。

让我们开始吧。第一个不能运行(第二个也一样),因为使用双引号会强制php为此字符串寻找替换值。

第二个好一些,因为php没有替换需要执行的。

第三个更好,因为使用了单引号,因此语言知道你能够脱离进程传送文本,但是“不好”的事情是使用了连接符(不操作,就行第二个例子一样)。

最后一个使用了单引号,并且加了一个连接符。为什么这样处理最好呢?

好吧,让我们看看当使用第三种方法时会发生什么。

php创建一个字符串,包含“Hello”,然后扩充它,加上foo变量(“John SMITH”),然后,再次扩充它,加上“Welcome on my website.”语句,然后,echo能使用它。

然而第四个例子,echo唯一做的一件事是发送“Hello”,接着输出$foo的内容,再输出“Welcome on my website.”。因为echo仅仅是发送文本而没有创建一个需要扩充内容的字符串。

在上述第四个例子里,发现原来“,”逗号也可作php的连接符的,我们大家一般都是使用一点“.”作连接符的。

据说,这可能是从C开始带过来的习惯,printf这类的输出都是变参的,echo也继承了这个优良传统。不过需要明白的是,这里的逗号是参数间隔符,不是字符串连接符。

希望这篇文章对大家对连接符有更深的认识
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: