文档章节

echo 及,和 . 区别

2007lf
 2007lf
发布于 2015/02/16 13:14
字数 499
阅读 13
收藏 0
$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.';

4种方式,都能得到同样的结果,但是,只有第4种方式是最好的。原因如下
1.字符串始终使用单引号代替双引号,以避免PHP搜索字符串内的变量导致的性能下降。 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。
2.逗号连接字符串,要比点号速度更快

echo '1+5=' . 1+5;//输出的结果是6,而不是1+5=6.
echo '1+5=' . 5+1;//输出的结果是2.

上面如果把点号换成逗号,就会得到我们想要的结果了

echo ('1+5' . 5)+1; //输出2 我们给前面的加个括号后.得到的结果是一样的.
证明 PHP是先连接字符串再进行加法计算了.按照从左向右的方向进行的.
既然是先连接的字符串.那么就应该是"1+55"了.然后再 用这个字符串加上1.那为什么就会输出2呢?
这个跟PHP中字符串变成数字的机制是相关的 .
echo (int)'abc1'; //输出0
echo (int)'1abc'; //输出1
echo (int)'2abc'; //输出2
echo (int)'22abc';//输出22

从上面的例子我们可以看出.如果将一个字符串强制转换成一个数字.PHP会去搜索这个字符串的开头.如果开头是数字就转换.如果不是就直接返回0.

手册上说了.用逗号是multiple parameters .
也就是说是多参数.换句话说.
逗号分隔开的就相当于是N个参数.也就是说把echo当个函数用.
这样的话.echo会对每个参数先进行计算.最后再进行连接后输出.




© 著作权归作者所有

共有 人打赏支持
2007lf
粉丝 8
博文 200
码字总数 43608
作品 0
合肥
程序员
一个脚本实例浅析shell脚本中$@与$*的区别

我们经常会在脚本中用到$@和$*这两个变量,但是可能许多人只是知道这两个变量存储的是所有的命令行参数,但是其具体差别并不一定知道。所以这里我用一个脚本实例来分析一下这两个变量的区别。...

文皓
2014/07/24
0
0
php中strstr、strrchr、substr、stristr四个函数的区别总结

这篇文章主要介绍了php中strstr、strrchr、substr、stristr四个函数的区别总结,这4个函数是PHP中常用的字符串相关函数,需要的朋友可以参考下 php中strstr、strrchr、substr、stristr四个函数...

bengozhong
2016/08/25
20
0
ant中depends调用任务和antcall调用任务的区别

在使用ant的时候,有时用 A: ${war.name} 有时用 B: ${war.name} 两种方法有什么不同呢? 通常来看,感觉没什么不同,其

唐玄奘
2017/12/20
0
0
[PHP] - 逗号和点号的区别

[PHP] - 逗号和点号的区别 比如: 1. echo 'abc'.'def'; //用点号连接字符串 2. echo 'abc','def'; //用逗号连接字符串 也许很多人都知道逗号要比点号快.但是不知道为什么.更不知道这两者到底...

李佳顺
2012/04/26
0
0
关于shell脚本的一些容易混淆的概念

$@和$*的区别 [lf@x201t~]$vim my_fun.sh #!/bin/bash # $@ and $* my_fun (){ echo "$#" } echo 'the number of parameter in "$@" is' $(my_fun "$@") echo 'the number of parameter in $......

xiguatian
2016/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
31分钟前
0
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
53分钟前
1
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0
学习设计模式——生成器模式

1. 认识生成器模式 1. 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2. 组成: Builder:生成器接口,定义创建一个Product对象所需要的各个组件的操作,...

江左煤郎
昨天
0
0
C语言精要(第二章:基本数据类型)

2.1 C语言基本数据类型 在计算机术语中,把⼆进制数中的某⼀位数又称为⼀个⽐特(bit)。⽐特这个单位对于计算机⽽⾔,在度量上是最⼩的单位。除了⽐特之外,还有字节(byte)这个术语。⼀个...

ryanliue
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部