php連接符
很多時候我們需要將幾個字符串連接起來顯示,在PHP中,字符串之間使用 “點” 來連接,也就是英文中的半角句號 " . " 。" . " 是字符串連接符,可以把兩個或兩個以上的字符串鏈接成一個字符串。例如:
1
2
3
4
5
|
<?php
$name
=
"PHP中文網:"
;
$url
=
"www.php"
;
echo
$name
.
$url
.
".cn"
;
?>
|
輸出結果為:
1
|
PHP中文網: www.php.cn
|
應用字符串連接符號沒有辦法實現大量字符串的連接,PHP允許程序員在雙引號中直接包含字符串變量,當echo語句后面使用的是 雙引號 (" ")時,可以使用下面的格式來達到相同的效果。例如:
1
2
3
4
5
|
<?php
$name
=
"PHP中文網:"
;
$url
=
"www.php"
;
echo
"$name$url.cn"
;
// 雙引號里的變量同一般的字符串自動進行區分
?>
|
輸出結果為:
1
|
PHP中文網:www.php.cn
|
字符串echo輸出 逗號也可作php連接符
輸出多個字符串時,用逗號代替句點來分隔字符串,速度更快。如下4種方式,都能得到同樣的結果,但是,只有第4種方式是最好的。
1
2
3
4
5
6
7
8
9
10
|
<?php
$foo
=
'Tom'
;
echo
"Hello $foo, welcome to phpcn."
;
echo
"<br>"
;
echo
"Hello "
.
$foo
.
" welcome to phpcn."
;
echo
"<br>"
;
echo
'Hello '
.
$foo
.
' welcome to phpcn.'
;
echo
"<br>"
;
echo
'Hello '
,
$foo
,
' welcome to phpcn.'
;
?>
|
說明:
第一個逗號" , "不能運行, 因為使用雙引號會強制php為此字符串尋找替換值。
第二個好一些,因為php沒有替換需要執行的。
第三個更好,因為使用了單引號,因此語言知道你能夠脫離進程傳送文本,但是“不好”的事情是使用了連接符(不操作,就行第二個例子一樣)。
最后一個使用了單引號,並且加了一個連接符。為什么這樣處理最好呢?
我們先看看第三個情況,php創建一個字符串,包含“Hello”,然后擴充它,加上foo變量(“Tom”),然后,再次擴充它,加上“welcome to phpcn.”語句,然后,echo能使用它。
然而第四的情況是,echo唯一做的一件事是發送“Hello”,接着輸出$foo的內容,再輸出“welcome to phpcn.”。因為echo僅僅是發送文本而沒有創建一個需要擴充內容的字符串。
到這里,就應該明白了優化php字符串連接符,可以提高程序運行速度。而且發現原來“,”逗號也可作php的連接符的,平時大家一般都是使用一點“.”作連接符的。是不是感覺很神奇?
據說,這可能是從C開始帶過來的習慣,printf這類的輸出都是變參的,echo也繼承了這個優良傳統。不過需要明白的是,這里的逗號是參數間隔符,不是字符串連接符。
再來說說逗號與句號的區別
1
|
echo
$str
,
$str2
,
$str3
;
|
使用逗號進行運算是逐個輸出運算結果
而
1
|
echo
$str
.
$str2
.
$str3
;
|
使用點號是先對所有字符串進行運算得到結果再輸出。
這樣看當然是 逗號的效率比點號高。 因為逗號連接是不需要運算的。