国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于php echo用逗號和用點號連接的區(qū)別?哪個更快?

neu / 1941人閱讀

摘要:先上大神文章里面提到了字符串用比用連接要好。原因先不說,先來看以下兩句逗號比更節(jié)省時間結(jié)果是什么我只能說的結(jié)果是,所以結(jié)果是和至于為啥快,可以簡單理解,用是先拼接在,雖然逗號個數(shù)代表的調(diào)用次數(shù)可以這么理解暫時。但是拼接的速度要小于的速度。

先上大神文章54chen

里面提到了echo 字符串用,比用.連接要好。原因先不說,先來看以下兩句

 

結(jié)果是什么?
1+5=6?
1+5=6?
——————
6?
2?
——————
6.6?
6.6?
——————
我只能說echo "5+1=" . 1+5;的結(jié)果是10,所以結(jié)果是62.

php echo manual


至于為啥快,可以簡單理解,用.是先拼接在echo,雖然逗號個數(shù)代表echo的調(diào)用次數(shù)(可以這么理解暫時)。
但是拼接的速度要小于echo的速度。
如果深入理解,VLD如下圖。是@tywei大神的圖

上面比下面多了個CONCAT,下面比上面多了個echo。
如果想知道更多詳細信息,點擊查看這個重磅炸彈

=======更新分割線===================2016-05-27
今天在看java的時候,發(fā)現(xiàn)java的string對象很嚴謹,小例子如下

public class HelloWorld {
    public static void main(String[] args) {
        String s1 = "imooc";
        String s2 = "imooc";
        String s3="I love "+s1; 
        
        //定義字符串s3,保存“I love”和s1拼接后的內(nèi)容
         
        
        // 比較字符串s1和s2
        // imooc為常量字符串,多次出現(xiàn)時會被編譯器優(yōu)化,只創(chuàng)建一個對象
        System.out.println("s1和s2內(nèi)存地址相同嗎?" + (s1 == s2));
        
        //比較字符串s1和s3
        System.out.println("s1和s3內(nèi)存地址相同嗎?" +    (s2==s3)             );

        String s4 = "I love " + s1;
         //比較字符串s4和s3
        // s1是變量,s4在運行時才知道具體值,所以s3和s4是不同的對象
        System.out.println("s3和s4內(nèi)存地址相同嗎?" + (s4 == s3));
    }
}

以上的結(jié)果為
s1和s2內(nèi)存地址相同嗎?true
s1和s3內(nèi)存地址相同嗎?false
s3和s4內(nèi)存地址相同嗎?false
暫不討論內(nèi)存地址這個概念(其實我不大懂),我就想起了php中是不是也是這樣。
類似例子就不貼了,php肯定是全等的。。但是我又想到了怎么看php中內(nèi)存具體怎么調(diào)用,想到了c下的gdb。但是php還是解析不了。那先看看opcode,然后就有這篇補上的文章了。

我們先安裝個vld擴展,先聲明我環(huán)境為14.04 LTS PHP 5.5.9-1ubuntu4.16 (cli)
pecl下載vld

tar zxvf解壓

進入到解壓好目錄

phpize 
./configure 
make && make install 

(注意操作要在root下,要不會報perssion錯誤)

root@tb:/home/tb/Downloads/vld-0.13.0# ls /usr/lib/php5/20121212/
json.so    memcached.so  mysql.so    pdo_mysql.so  readline.so  vld.so
mcrypt.so  mysqli.so     opcache.so  pdo.so        redis.so     xhprof.so

這樣就裝好了。

====修改fpm下的配置文件

vim /etc/php5/fpm/php.ini

增加一行vld的,如下所示

[redis]
extension =redis.so
[xhprof]
extension=xhprof.so
[vld]
extension=vld.so
xhprof.output_dir=/var/log/xhprof
[memcache]
extension =memcached.so

重啟fpm

service php5-fpm stop
service php5-fpm start

可以看到web中的phpinfo有了vld的選項。

vld support    enabled

為啥說是web中呢,因為我們一般調(diào)試在cli端
所以需要修改下cliphp.ini文件

執(zhí)行php -m |grep vld

root@tb:/usr/share/nginx/html/vldtest# php -m |grep vld
vld

就說明cli下的vld也可以用了。

然后我們在具體目錄建兩個php文件,內(nèi)容如下

root@tb:/usr/share/nginx/html/vldtest# cat 1.php 

root@tb:/usr/share/nginx/html/vldtest# cat 2.php 

root@tb:/usr/share/nginx/html/vldtest# 

然后分別執(zhí)行

php -dvld.active=1 1.php 

root@tb:/usr/share/nginx/html/vldtest# php -dvld.active=1 1.php 
Finding entry points
Branch analysis from position: 0
Jump found. Position 1 = -2
filename:       /usr/share/nginx/html/vldtest/1.php
function name:  (null)
number of ops:  4
compiled vars:  none
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   CONCAT                                           ~0      "hello", "+"
         1        CONCAT                                           ~1      ~0, "world"
         2        ECHO                                                     ~1
   3     3      > RETURN                                                   1

branch: #  0; line:     2-    3; sop:     0; eop:     3; out1:  -2
path #1: 0, 
hello world

php -dvld.active=1 2.php 

root@tb:/usr/share/nginx/html/vldtest# php -dvld.active=1 2.php 
Finding entry points
Branch analysis from position: 0
Jump found. Position 1 = -2
filename:       /usr/share/nginx/html/vldtest/2.php
function name:  (null)
number of ops:  4
compiled vars:  none
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   ECHO                                                     "hello"
         1        ECHO                                                     "+"
         2        ECHO                                                     "world"
   3     3      > RETURN                                                   1

branch: #  0; line:     2-    3; sop:     0; eop:     3; out1:  -2
path #1: 0, 
hello world

下面簡單記錄下參數(shù)意義:
-dvld.active 是否再執(zhí)行時激活vld,默認為0.所以我們都使用-dvld.active=1啟用
-dvld.skip_prepend 是否跳過php.ini配置文件中auto_prepend_file指定的文件,默認為0,就是禁用。
就是不跳過
-dvld.execute 是否執(zhí)行php腳本,默認為1,所以上面都顯示了helloworld
-dvld.save_paths 指定是否輸出文件
再膜拜下大神關(guān)于vld的文章

另外感興趣的同學(xué)關(guān)于擴展可以執(zhí)行下 php --re vld【redis,memcache】

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21457.html

相關(guān)文章

  • 正則表達式之量詞

    摘要:點號正則中,有一個特殊的特殊的元字符,點號,它可以匹配任意字符,除了換行符。表各種量詞的轉(zhuǎn)義量詞轉(zhuǎn)義形式除此之外,元字符點也需要加反斜線來進行轉(zhuǎn)義。 ??我們知道,在正則表達式中,可以使用[0-9]或d來匹配單個數(shù)字字符,但是,如果需要驗證一個更復(fù)雜的字符串呢,比如大陸地區(qū)的郵政編碼。??不過郵政編碼并沒有特別規(guī)定,只有由6個數(shù)字組成的字符串而已, 如246512,根據(jù)[0-9]或d,...

    lansheng228 評論0 收藏0
  • PHP工程師面試題+筆試題

    摘要:由于協(xié)議中沒有定義任何狀態(tài)碼,所以除非在某些試驗條件下,服務(wù)器禁止向此類客戶端發(fā)送響應(yīng)。表示要完成請求,需要進一步操作。 最近在廣州找工作,大四狗,讀著三本前兩年剛升二本的學(xué)校,文科生,好像一切條件都非常不利,但我還是毅然選擇這條路——拍黃片,人不能固步自封,還是要拓展一下自己的知識面,不能只學(xué)php而不拓展視野,還是要學(xué)學(xué)python、java、前端這些面試得有點心塞,各種因為學(xué)歷被...

    v1 評論0 收藏0
  • ajax概述

    摘要:換一臺電腦就要重新安裝。并且還需要適配不同的系統(tǒng)。提交大小幾乎沒有限制。即協(xié)議主要由請求和響應(yīng)組成。相反則為同步按照程序的順序,依次往下執(zhí)行,必須等上一程序執(zhí)行完成之后才能執(zhí)行下一程序,阻礙程序的執(zhí)行。 Ajax 服務(wù)器 類型 按照服務(wù)類型:文件服務(wù)器,數(shù)據(jù)庫服務(wù)器,郵件服務(wù)器,Web服務(wù)器 按照操作系統(tǒng):Linux服務(wù)器,Windows服務(wù)器 按照應(yīng)用軟件:Apache服務(wù)器,Ng...

    Achilles 評論0 收藏0
  • Javascript數(shù)組索引不完全解析

    摘要:數(shù)組的大小是不固定的,可以像這樣隨意添加。再看一張圖,這次多添加幾個元素,再給數(shù)組添加一個屬性注意看右側(cè)對象的元素索引不知道你有沒有發(fā)現(xiàn)。數(shù)組范圍和索引轉(zhuǎn)換那里是參考的,其他地方都是自己的理解和看法。 從題目說起,之所以是不完全,是因為有些東西比如數(shù)組的方法怎么用這個我都不打算講,因為那個看一下都會,下面講的都是我覺得重要的,只關(guān)于數(shù)組對象本身。另外,由于我的Javascript實戰(zhàn)經(jīng)...

    levius 評論0 收藏0
  • php 程序員 命令行指南 持續(xù)總結(jié)更新 mac

    摘要:直接強制結(jié)束程序。在用掛起程序時,當(dāng)想要結(jié)束這個程序,最好用。能夠模擬在控制臺結(jié)束程序的功能。 向 host 文件快速添加新網(wǎng)址配置 echo 127.0.0.1 your.domian.com | sudo tee -a /etc/hosts NGINX 配置 #nginx禁止訪問.點號開頭的文件 location ~* /.* { deny all; } #nginx 禁止訪問.s...

    gyl_coder 評論0 收藏0

發(fā)表評論

0條評論

neu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<