php總結
基礎總結 一: 關於php中單引號 雙引號 花括號 問題總結
在php 中 字串可以用 單引號 也可以用雙引號 引起來表示,輸出等。
例如:
Php代碼
<?php echo "aabbcc"; echo 'aabbcc'; ?>
他們的輸出是相同的。都會印出 aabbcc
但是 如果將aabbcc 賦值給一個變量,那麼它又該如何輸出呢?
Php代碼
<?php $a = "aabbcc";//或者$a='aabbcc'; echo $a; echo "$a"; //在这里你会发现 他们的输出都是 aabbcc //如果是输出并且回车呢 echo $a."\n"; echo "$a\n"; //这两种方式都是可以的。输出都是aabbcc 为什么呢, ?>
是因為「」雙引號 在php中有解釋的功能,它會去解釋這個字符串 如果字符串中有變量或轉義字符 它會一併解釋了 在進行輸出 。而單引號沒有解釋功能,也就是說,當你echo '$a'; 或echo 'n'; 它只會當作字符串輸出 $a n 並不會輸出你所想要的解釋好的變量或者轉移字元。
什麼是解釋功能? 其實這只是,如果你用雙引號輸出字串的時候,系統會去正規的匹配$符號,從而識別變數。轉義字符也是。 。 。
針對上面轉義那一塊的情況還有一種情況。我們分別輸出' 單引號和 雙引號「
Php代碼
echo '\''; echo "'"; //双引号括住单引号,避免了再去用\ 转义 echo "\""; echo '"'; //针对双引号,单引号有了避免了转义的操作。
所以,透過上面的解釋,我們可以認定為,當我們只是輸出字串的時候,不存在需要解釋的東西的時候,我們應該直接用'' 單引號 這樣可以省略一個解釋的過程, 在運行速度上雖然看不到明顯的提升,但是原理上運行效率是高於用雙引號的。可以用「」 雙引號。獲得到的是$resbbbb ,
因為zend解析的時候用的是正則匹配。那麼系統正規就會一直匹配。 」; 這句話就會運作正常,只不過輸出的字串中多了一個空格。
筆者 不想要多餘的這個空格呢?
這樣寫,zend解析的時候,同樣是正則找到兩個花括號。 {}中的字符會再此使用正常雙引號的正則匹配。花括號中是{aaa $res} 呢?即: echo "aaa{ggg $res}bbbb"; 也就是 花括號中不只是變數 或不是變數。雙引號的正規去解析查找變數。 。