程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 簡單概括PHP的字符串中單引號與雙引號的區別,php字符串

簡單概括PHP的字符串中單引號與雙引號的區別,php字符串

編輯:關於PHP編程

簡單概括PHP的字符串中單引號與雙引號的區別,php字符串


今天有個朋友問起,說下區別,順便復習下。

單引號與雙引號的不同:

  • " "雙引號裡面的字段會經過編譯器解釋,然後再當作HTML代碼輸出。
  • ' '單引號裡面的不進行解釋,直接輸出。 
  • 單引號解析的時間比雙引號快 。
  • 單引號支持\轉義符,雙引號支持的轉義符更多 。
$hello= 3;
echo "hello is $hello"; // 打印結果:hello is 3 
echo 'hello is $hello'; // 打印結果: hello is $hello 
echo "hello is $hello\n"; // 打印結果: hello is 2 (同時換行) 
echo 'hello is $hello\n'; // 打印結果: hello is $hello\n

PS:
今天看到老外提到了PHP的單引號的問題,其中提到了有趣的東西,摘錄如下:
其中說裝了PHP擴展 Vulcan Logic Disassembler 後,可以看到PHP生成的中間碼,
首先是:

echo "This is a string"; 

會轉變為:

ECHO    'This is a string' 

echo 'This is a string'; 

則變成

 ECHO    'This is a string' 

,是一樣的
如果是

echo "This is a $variable"; 

則PHP產生的OPCODE為

INIT STRING ~0 

2 ADD_STRING  ~0 ~0 'This' 

3 ADD_STRING  ~0 ~0 ' ' 

4 ADD_STRING  ~0 ~0 'is' 

5 ADD_STRING  ~0 ~0 ' ' 

6 ADD_STRING  ~0 ~0 'a' 

7 ADD_STRING  ~0 ~0 ' ' 

8 ADD_VAR    ~0 ~0 !0 

9 ECHO      ~0 

echo "This is a " . $variable; 

則會變成

CONCAT    ~0 'This is a ' !0 

2 ECHO      ~0 

可以見到,速度快很多了,用.連接的話

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved