echo $first,$second与echo $first.$second中的‘,’和‘.’的区别 用逗号可以节少echo 的输出时间 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个问题我也遇到过,但是网上没有详细说。我觉得:1、逗号可能去输出多个字符串:如:echo $first,$second,即是:echo $first;echo $second;2、而英文句号则是,把多个字符串连接起来再输出。所以,连接起来的时候,可能是这里浪费时间,不知道理解是否正确,呵呵??? 嗯,就是gingzai777说的那样。,只是依次输出,而.则是连接后输出,后者当然是会慢一些的。 我测试了一下.echo $first;echo $second;这样的写法运行比echo $first,$second;更快 真的?我在opcode的层面上看。echo $first;echo $second;是line op return operands2 ECHO - !13 ECHO - !2echo $first,$second;是2 ECHO - !12 ECHO - !2echo $first.$second是2 CONCAT ~3 !1, !2 ECHO ~3很明显最后一种是最耗时的,因为需要做一次连接(CONCAT)操作,生成一个tmp var(~3)。但是前面两种我看不出有多少区别,反而是,的只有一个opline,在内存的开销应该会稍微小一些才对。它内部是如何实现的呢?首先必然是先寻找到了echo,于是有一个类似T_ECHO的token。然后寻找表达式,直到出现一个不在引号token内的,或者;或者.如果遇到,,则把表达式结果存储在opline里,直到出现;,然后输出(实际上是进buffer)。难道操作opline要比生成一个opline并且输出到buffer更耗时?嗯,想不通了。。 echo $first,$second; 0.208221echo $first.$second; 0.265668echo $first;echo $second; 0.188376循环1000000次 挑了一个时间.大家可以用bench也试一下楼上你说的太深奥了,我听不懂,汗 用.进行字符串合并肯定是最慢的。PHP处理字符串和其它类型高级语言类似,都是创建不可修改的“字符串”的,所以.一下会产生一个中间串。 echo $first,$second; //应该是先输出变量$first,然后再输出变量$secondecho $first.$second; //在这里.号是一个连接运算符,将$first与$second连接成一个字符串之后,再输出。这样说对不对? php 数组key与value的问题 php编程问题 php无法连接局域网中的mssql2000 php+IIS 使用inc数据库配置文件出现的500错误! sql语句问题 大家都用什么工具写、读PHP源代码? 关于语音聊天室的问题,高分请教 给我介绍一个论坛。 PHP中COM编程,例如Word等 数据库报错,求解 http://127.0.0.1:81/magento2/index.php/install/ 谁能解释一下这人路径啊》文件名+ 路径? PHP基础的知识看完后,有什么书适合更深入的研究php``
这个问题我也遇到过,但是网上没有详细说。我觉得:1、逗号可能去输出多个字符串:
如:echo $first,$second,即是:
echo $first;
echo $second;2、而英文句号则是,把多个字符串连接起来再输出。所以,连接起来的时候,可能是这里浪费时间,不知道理解是否正确,呵呵???
echo $first;
echo $second;
这样的写法运行比
echo $first,$second;
更快
echo $first;
echo $second;
是
line op return operands
2 ECHO - !1
3 ECHO - !2echo $first,$second;
是
2 ECHO - !1
2 ECHO - !2echo $first.$second
是
2 CONCAT ~3 !1, !2
ECHO ~3很明显最后一种是最耗时的,因为需要做一次连接(CONCAT)操作,生成一个tmp var(~3)。
但是前面两种我看不出有多少区别,反而是,的只有一个opline,在内存的开销应该会稍微小一些才对。
它内部是如何实现的呢?首先必然是先寻找到了echo,于是有一个类似T_ECHO的token。
然后寻找表达式,直到出现一个不在引号token内的,或者;或者.
如果遇到,,则把表达式结果存储在opline里,直到出现;,然后输出(实际上是进buffer)。难道操作opline要比生成一个opline并且输出到buffer更耗时?嗯,想不通了。。
echo $first.$second; 0.265668
echo $first;
echo $second; 0.188376循环1000000次 挑了一个时间.
大家可以用bench也试一下楼上你说的太深奥了,我听不懂,汗
echo $first,$second; //应该是先输出变量$first,然后再输出变量$second
echo $first.$second; //在这里.号是一个连接运算符,将$first与$second连接成一个字符串之后,再输出。
这样说对不对?