最近在寫 PHP 發現在處理字串的時候使用單引號「'」或雙引號「"」竟然執行結果會不一樣,於是Google一下了解其所以。
原來是因為在 PHP 會處理雙引號「"」內字串的內容(像是跳脫字元或變數);而單引號「'」內字串的內容則視為純字串,所以在輸出的時候可以發現明顯的差異,很多潛在的 Bug 都跟這個有關係,以下提供兩個範例:
範例一
範例二
附帶一提,很多人說用單引號「'」會讓 PHP 執行速度較雙引號「"」來的快,就是差別在是否會處理字串的內容了。
原來是因為在 PHP 會處理雙引號「"」內字串的內容(像是跳脫字元或變數);而單引號「'」內字串的內容則視為純字串,所以在輸出的時候可以發現明顯的差異,很多潛在的 Bug 都跟這個有關係,以下提供兩個範例:
範例一
- <?php
- $str = 'world';
- echo "Hello! $str"; // 會印 Hello! world
- echo 'Hello! $str'; // 會印 Hello! $str
- ?>
範例二
- <?php
- echo "\n"; // 會換行
- echo '\n'; // 會印 \n
- ?>
附帶一提,很多人說用單引號「'」會讓 PHP 執行速度較雙引號「"」來的快,就是差別在是否會處理字串的內容了。
沒有留言:
張貼留言