文档章节

echo 及,和 . 区别

2007lf
 2007lf
发布于 2015/02/16 13:14
字数 499
阅读 13
收藏 0
点赞 0
评论 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
博文 191
码字总数 43518
作品 0
合肥
程序员
一个脚本实例浅析shell脚本中$@与$*的区别

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

文皓 ⋅ 2014/07/24 ⋅ 0

php中strstr、strrchr、substr、stristr四个函数的区别总结

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

bengozhong ⋅ 2016/08/25 ⋅ 0

ant中depends调用任务和antcall调用任务的区别

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

唐玄奘 ⋅ 2017/12/20 ⋅ 0

[PHP] - 逗号和点号的区别

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

李佳顺 ⋅ 2012/04/26 ⋅ 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

LINUX - awk命令之NF和$NF区别

LINUX - awk命令之NF和$NF区别 NF和$NF 区别问答: 1.awk中$NF是什么意思? #pwd /usr/local/etc ~# echo $PWD | awk -F/ '{print $NF}' etc NF代表:浏览记录的域的个数 $NF代表:最后一个F...

考拉睡 ⋅ 2013/04/13 ⋅ 0

批处理的一个问题

对于如下的代码为什么说else不是系统可执行的命令 @echo off if exist a.txt ( echo 存在文件a.txt echo 它的内容为: type a.txt ) else ( echo 文件a.txt 不存在 ) pause 对于如下的代码命...

顾俊程 ⋅ 2010/12/31 ⋅ 2

shell逻辑运算总结, 包括[[]]与[]的区别,&&与-a的区别,||与-o的区别

1. 关于文件和目录 -f 判断某普通文件是否存在 -d 判断某目录是否存在 -b 判断某文件是否块设备 -c 判断某文件是否字符设备 -S 判断某文件是否socket(待修正) -L 判断某文件是否为符号链接...

高健2013 ⋅ 2015/02/11 ⋅ 0

关于 self 和static的区别

<?php 可你知道self和static的区别么? 其实区别很简单,只需要写几个demo就能懂: Demo for self: class Car { public static function model(){ self::getModel(); } protected static fu......

chenhongjiang ⋅ 2016/05/10 ⋅ 0

ADD,COPY,ENTRYPOINT和cmd

Dockerfile中有关信息: ADD与COPY区别 add:1、对压缩包进行解压2、可以在后面直接跟文件地址 copy:把本地的文件copy到容器里面 ENTRYPOINT与CMD区别 1、第一种解释(借鉴别人): CMD指定的...

舒意意123 ⋅ 05/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 50分钟前 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部