在php里聲明一個字符串有2種方式,一種是用單引號,另一種是用雙引號。2者最大的區別就是當字符串中包含變量時,單引號不能輸出變量的值,而是直接輸出變量名,雙引號就可以輸出變量的值。
1 <?php 2 $a = 'hello'; 3 $b = 'world'; 4 echo '$a $b'; //輸出$a $b 5 echo "$a $b"; //輸出hello world 6 ?>
另外單引號里只能有2種轉義字符,\'(表示單引號)和\\(表示反斜杠),雙引號就沒這個限制。
1 <?php 2 echo '\'hello\\world\''; //輸出'hello\world' 3 echo "\thello\r\n"; //\t表示制表符,\r\n表示換行 4 ?>
在php中字符串的拼接是用' . ',輸出字符串一般是用echo。
1 <?php 2 $a = 'hello'; 3 $b = 'world'; 4 echo $a . ' ' . $b;//輸出hello world ( )表示空格 5 ?>
也可以用大括號{$str}在字符串里內嵌變量,如"文字{$str}文字",如果不用大括號{}就要注意,比如"文字$str文字",這時是輸出文"字+$str文字",而不是"文字+$str+文字",當然不用{}也可以用分詞字符來把變量和文字分開,分詞字符一般是空格,標點符號等。
1 <?php 2 $a = 'hello'; 3 echo "qqq{$a}qq";//輸出qqqhelloqqq 4 echo "qqq$aqqq";//輸出的是qqq$aqqq,而不是qqqhelloqqq 5 echo "qqq$a qqq";//在$a后面加個空格也是可以得,輸出qqq$a qqq 6 ?>
在php也是可以直接書寫多行字符串的
1 <?php 2 $str=<<<STR 3 'ok',"hello" 4 I will 5 {$str1} 6 STR; 7 8 /**** 9 * 其中三個小於號代表多行字符串的輸入,STR是字符串界定符,界定符的名字可以自己定義,兩個界定符之間的內容就是多行字符串。其中的單引號雙引號可以直接輸出而不必轉義,當然里面也可以直接插入變量,輸出是會自動替換變量值的 10 ****/ 11 ?>
一個小技巧,當使用 echo進行字符串輸出時,如果字符串使用拼接方式組成,可以使用逗號來連接需要拼接的各部分字符串和變量,比如
echo 'first',"second",$str,"end";
據說這樣輸出速度要快一些,原因在於echo可以接受多個參數,並直接按順序輸出,實際上逗號不是拼接字符串,而是把不同字符串和變量作為參數傳送給echo命令