2013-05-14 26 views
0

我知道下面三個語句的,紹相同的輸出:回聲與參數和沒有?

echo "Hello" . "World! <br/>"; 
echo "Hello"; echo "World!", "<br/>"; 
echo "Hello", "World!", "<br/>"; 

但有什麼區別性能與特點,爲什麼?

與​​相比,連接速度如"String" . "String"慢嗎?

回答

5

這取決於你的表現是什麼......就操作次數而言,你的第一個例子是最好的(操作次數最少)......你的第二個和第三個例子幾乎完全一樣。

操作碼爲echo "Hello" . "World! <br/>";HERE

Finding entry points 
Branch analysis from position: 0 
Return found 
filename:  /in/oYvSm 
function name: (null) 
number of ops: 3 
compiled vars: none 
line  # * op       fetch   ext return operands 
--------------------------------------------------------------------------------- 
    3  0 > CONCAT           ~0  'Hello', 'World%21+%3Cbr%2F%3E' 
     1  ECHO              ~0 
    5  2 > RETURN             1 

branch: # 0; line:  3- 5; sop:  0; eop:  2 
path #1: 0, 

操作碼的echo "Hello"; echo "World!", "<br/>";HERE

Finding entry points 
Branch analysis from position: 0 
Return found 
filename:  /in/nMufh 
function name: (null) 
number of ops: 4 
compiled vars: none 
line  # * op       fetch   ext return operands 
--------------------------------------------------------------------------------- 
    3  0 > ECHO              'Hello' 
     1  ECHO              'World%21' 
     2  ECHO              '%3Cbr%2F%3E' 
    5  3 > RETURN             1 

branch: # 0; line:  3- 5; sop:  0; eop:  3 
path #1: 0, 

操作碼的echo "Hello", "World!", "<br/>";HERE

Finding entry points 
Branch analysis from position: 0 
Return found 
filename:  /in/LnPaY 
function name: (null) 
number of ops: 4 
compiled vars: none 
line  # * op       fetch   ext return operands 
--------------------------------------------------------------------------------- 
    3  0 > ECHO              'Hello' 
     1  ECHO              'World%21' 
     2  ECHO              '%3Cbr%2F%3E' 
    4  3 > RETURN             1 

branch: # 0; line:  3- 4; sop:  0; eop:  3 
path #1: 0, 

所以,你Ç清楚地看到你正在對第二個和第三個例子使用一個額外的echo操作。但是,這些示例中的性能(讀取速度)幾乎可以忽略不計。

1

第2和第3是等價的。

使用逗號稍微快一些,因爲它不使用串接。