2012-05-16 61 views
0

我在我的程序上使用sprintf()來輸出一些製表符和換行符。我注意到我的程序的一部分工作不正常。php單引號不適用於sprintf

正如我檢查不工作的部分,我發現我使用了單引號'代替雙引號"和程序實際輸出\t代替inivisible標籤空間。

我以爲兩者是相似的,有兩個用於php的定界符的原因是我們能夠插入單個或雙引號字符串或echo他們沒有插入轉義字符。

會不會有從一個指定的變量預留了差別,我發現

$a = "qq"; 
$b = 'qq'; 

他們會被存儲在計算機的內存中以不同的方式?

回答

0
if you use single quotes for the format string (like you should do, since there 
aren't any variable conversions to do as long as you don't need any special chars), 
the given examples won't work because of the backslash before the $ (needs to be 
escaped in double quoted strings - but not in single quoted!) http://php.net/manual/en/function.sprintf.php 
1
  • 單引號比雙
  • 雙快報價可以解析php變量。即$ a = 2;,如果你使用echo「a is:$ a」;那麼它會打印一個是:2但單引號將打印一個是:當它們出現在找到單引號strings.` $一個
+0

因此,通過改變我的大部分雙引號在我的PHP代碼將以某種方式使它更快地執行一個小雙比。此外,我還沒有意識到你作爲例子展示的php變量技巧。好一個。 – MegaNairda

+0

是的。使用單引號稍快。 這是因爲當你使用雙引號時,PHP必須解析以檢查那裏是否有變量。 – VibhaJ