1. 程式人生 > >單引號、雙引號與定界符——PHP

單引號、雙引號與定界符——PHP

單引號與雙引號

 

單引號和雙引號在echo輸出時的區別

echo輸出時,如果使用單引號,那麼echo會把單引號之間的全部內容當成普通字串輸出,不能識別變數和轉義字元(單引號串中的內容總被認為是普通字元)

1 $str1 = "Hello";
2 echo '$str1<br/>';

執行結果:

 

 

echo輸出時,如果使用雙引號,那麼echo會識別雙引號之間的變數和轉義字元

1 $str1 = "Hello";
2 echo '$str1<br/>';
3 echo "$str1<br/>";

執行結果:

在上面的測試程式碼中,給$str1變數賦值的內容只有普通字元,所以使用單引號和雙引號賦值的作用時一樣的

------------------------------------------------------

單引號和雙引號在給變數賦值時的區別

1 $str1 = "Hello";
2 $str2 = '$str1 my friend';
3 $str3 = "$str1 my friend";
4 echo "$str2<br/>";
5 echo "$str3<br/>";

執行結果:

-----------------------------------------------------

PHP語法分析器是用成對的引號來判斷一個字串的。因此,所有字串必須使用同一種單或者雙引號來定義開始和結束,也就是說可以在雙引號中包含單引號,單引號中包含雙引號

1 /* 雙引號中包含單引號 和 單引號中包含雙引號 */
2 $str6 = "Maybe today 'maybe tomorrow'";
3 $str7 = 'Maybe today "maybe tomorrow"';
4 echo "$str6<br/>";
5 echo "$str7<br/>";

執行結果:

 

 

如果想在單引號中包含單引號,雙引號中包含雙引號,則需要使用轉義符\

1 /* 在雙引號中包含雙引號 */
2 $str8 = "Who How What \"Why\" No";
3 echo "$str8<br/>";
4 
5 /* 在單引號中包含單引號 */
6 $str9 = 'Who How What \'Why\' No';
7 echo "$str9<br/><br/>";

執行結果:

 

 

定界符

使用格式:

1 <<<EOF
2 `````
3 EOF;

 

簡單來說定界符的作用有:

1.PHP定界符的作用就是按照原樣,包括換行格式什麼的,輸出在其內部的東西

2.在PHP定界符中的任何特殊字元都不需要轉義

3.PHP定界符中的PHP變數會被識別,並用變數本身的值替換

(從上面三條可以看出定界符和雙引號非常相似)

 

使用定界符注意事項:

1、EOF 可以用任意其它字元代替,只需保證結束標識與開始標識一致,並且開始標記和結束標記不在正文中出現即可(意思是可以寫成如下形式)

<<<TODAY
`````
TODAY;

 

2、結束標識必須頂格獨自佔一行(即必須從行首開始,前後不能銜接任何空白和字元)

正確的示例:

1 $str1 = 'Hello';
2 echo <<<EOF
3 {$str1}
4 EOF;

執行結果:

 

 

錯誤的示例:

1 $str1 = 'Hello';
2 echo <<<EOF
3 {$str1}
4  EOF;

執行結果:

 

3、開始標識可以不帶引號或帶單雙引號,不帶引號與帶雙引號效果一致,解釋內嵌的變數和轉義符號,帶單引號則不解釋內嵌的變數和轉義符號

第一部分:不帶引號與帶雙引號效果一致

1 $str1 = 'Hello';
2 echo <<<EOF
3 {$str1}
4 EOF;
5 
6 $str2 = 'Hi';
7 echo <<<"EOF"
8 {$str2}
9 EOF;

執行結果:

第二部分:帶單引號則不解釋內嵌的變數和轉義符號

1 $str1 = 'Hello';
2 echo <<<'EOF'
3 {$str1}\n
4 EOF;

執行結果:

 

4、當內容需要內嵌引號(單引號或雙引號)時,不需要加轉義符,本身對單雙引號轉義

1 $str1 = 'Hello';
2 echo <<<EOF
3 {$str1}"Hi"'Yo'
4 EOF; 

執行結果: 

 

 

定界符與雙引號

 當需要用echo輸出大量的html和js程式碼時,定界符的優勢便體現出來了,以html為例,當echo輸出的html程式碼中含有單引號或雙引號時,如果使用普通的雙引號輸出,則需要手動的新增轉義符(\)來保證語法不會出錯,如果使用定界符則不需要手動新增轉義符,測試程式碼如下

 

使用echo""輸出html程式碼

1 echo "<a href=\"https://www.baidu.com\">此連線使用了href屬性</a><br/>";

執行結果:

在上面程式碼中,如果不對html程式碼中的雙引號新增轉義符,則會報錯

 

使用echo定界符輸出html程式碼

1 echo <<<EOF
2 <a href="https://www.baidu.com">此連線使用了href屬性</a><br/>
3 EOF; 

執行效果:

 

————————————————————————————

編輯器:Notepad++

環境:WampServer Version 3.1.9 64bit

PHP Version:7.3.5&n