成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

關(guān)于php echo用逗號(hào)和用點(diǎn)號(hào)連接的區(qū)別?哪個(gè)更快?

neu / 2006人閱讀

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

先上大神文章54chen

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

 

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

php echo manual


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

上面比下面多了個(gè)CONCAT,下面比上面多了個(gè)echo。
如果想知道更多詳細(xì)信息,點(diǎn)擊查看這個(gè)重磅炸彈

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

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)時(shí)會(huì)被編譯器優(yōu)化,只創(chuàng)建一個(gè)對(duì)象
        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在運(yùn)行時(shí)才知道具體值,所以s3和s4是不同的對(duì)象
        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)存地址這個(gè)概念(其實(shí)我不大懂),我就想起了php中是不是也是這樣。
類似例子就不貼了,php肯定是全等的。。但是我又想到了怎么看php中內(nèi)存具體怎么調(diào)用,想到了c下的gdb。但是php還是解析不了。那先看看opcode,然后就有這篇補(bǔ)上的文章了。

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

tar zxvf解壓

進(jìn)入到解壓好目錄

phpize 
./configure 
make && make install 

(注意操作要在root下,要不會(huì)報(bào)perssion錯(cuò)誤)

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的選項(xiàng)。

vld support    enabled

為啥說(shuō)是web中呢,因?yàn)槲覀円话阏{(diào)試在cli端
所以需要修改下cliphp.ini文件

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

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

就說(shuō)明cli下的vld也可以用了。

然后我們?cè)诰唧w目錄建兩個(gè)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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/21457.html

相關(guān)文章

  • 正則表達(dá)式之量詞

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

    lansheng228 評(píng)論0 收藏0
  • PHP工程師面試題+筆試題

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

    v1 評(píng)論0 收藏0
  • ajax概述

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

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

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

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

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

    gyl_coder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

neu

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<