LmC*_*LmC 0 php string concatenation echo
我知道以下三个语句会产生相同的输出:
echo "Hello" . "World! <br/>";
echo "Hello"; echo "World!", "<br/>";
echo "Hello", "World!", "<br/>";
Run Code Online (Sandbox Code Playgroud)
但是,性能差异是什么?为什么?
与之"String" . "String"相比,连接速度较慢"String","String"吗?
这取决于你的表现是什么意思......就操作次数而言,你的第一个例子是最好的(操作次数最少)......你的第二个和第三个例子几乎完全相同.
这里的操作码echo "Hello" . "World! <br/>";
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,
Run Code Online (Sandbox Code Playgroud)
这里的操作码echo "Hello"; echo "World!", "<br/>";
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,
Run Code Online (Sandbox Code Playgroud)
这里的操作码echo "Hello", "World!", "<br/>";
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,
Run Code Online (Sandbox Code Playgroud)
因此,您可以清楚地看到您echo在第二个和第三个示例中使用了一个额外的操作.但是,在这些示例中,性能(读取速度)几乎可以忽略不计.