單引號、雙引號與定界符——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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM