php的字串 雙引號輸出變數的問題 轉義字元

2021-10-01 03:45:26 字數 1400 閱讀 5004

php中字串可以用單引號和雙引號表示,但單引號效率比雙引號高,因為單引號是真正的字串,雙引號要做運算,即將字串中的變數替換成值,單引號不需要

看下面的例子

<?php 

header('content-type:text/html;charset=utf-8');

$name='dl_one';

echo '我的名字是$name','

'; echo "我的名字是$name",'

因為單引號是真正的字串,所以不會去把$name替換成值,雙引號則會

但是要注意,用下面的例子解釋吧!

<?php 

header('content-type:text/html;charset=utf-8');

$name='dl_one';

echo '我的名字是$name','

'; echo "$name我的名字是",'

要注意$的位置,$把後面的全部當成變數了,但沒有定義,所以報錯,遇到這種問題,我們要在變數兩邊加大括號,並且括號和變數之間不能有空格,大家可以試一下括號和變數之間有空格會怎麼樣,比如:

<?php 

header('content-type:text/html;charset=utf-8');

$name='dl_one';

echo '我的名字是$name','

'; echo "我的名字是",'

用下面的例子解釋吧

<?php 

header('content-type:text/html;charset=utf-8');

echo "我的名字叫:\"dl_one\"";

?>

轉義字元就是用\將後面的內容轉義成另一種含義,這是我的理解,比如上面的第三個和第四個"就沒有匹配前面和後面的雙引號

注意:轉義字元後面跟的是特殊字元,將特殊字元轉成普通字元。如果轉義字元後面跟的是普通字元,轉義字元(\)就是乙個普通字元

下面是轉義字元的各個意義

php雙引號輸出字串的變數陷阱

上面一段 我們預期的輸出是 但最後的輸出是 a 為什麼會是輸出乙個字元a?通常情況下我們會檢查傳入變數的編碼問題,utf8,gb2312就會背上這個鍋,後來,我們發現 echo dt 是可以的,我們又自然會想到是php在字串格式化編碼輸出時可能有問題,但這麼明顯的bug貌似又查不到資料證明。再分析 ...

PHP定義字串時單引號和雙引號的區別

一般用單引號或雙引號標識乙個字串。單引號串與雙引號串,在php中的處理是不同的。雙引號中的內容可以被解釋並被替換,單引號串中的內容則被作為普通字元處理。例如 php view plain copy str 6 echo str is str n echo str is str n 輸出結果為 str...

QString字串中雙引號的梗

qstring字串不支援雙引號 最近做專案 本地環境 win10 qt5.9.2 vs2017 有個需求,需要實現形如 key 123456 這樣的字串。查了很多資料,發現qstring是沒法實現願望的。但是,std string可以實現字元中雙引號的夙願,只要加反斜槓即可。於是,有了下面的 dem...