話說天涯最近利用空閒時間要完整的讀一遍手冊,話說會在博客裡面發布一些自認為我們容易忽略的東西。不多說,第一篇。
Note: 關於換行 儘管換行在 HTML 中的實際意義不是很大,但適當地使用換行可以使 HTML 程式碼易讀且美觀。 PHP 會在輸出時自動刪除其結束符號 ?> 後的一個換行。這個功能主要是針對在一個頁面中嵌入多段 PHP 程式碼或包含了無實質輸出的 PHP 檔案而設計,同時也造成了一些疑慮。如果在 PHP 結束符號 ?> 後輸出換行的話,可以在其後加一個空格,或是在最後的一個 echo/print 語句中加入一個換行。
Note: 檔案末尾的PHP 程式碼段結束標記可以不要,有些情況下當使用include() 或者require() 時省略掉會更好些,這樣不期望的白空格就不會出現在文件末尾,之後仍然可以輸出響應標頭。在使用輸出緩衝時也很便利,就不會看到由包含檔案產生的不期望的白空格。
Note: 和其他兩種語法不同,單引號字串中出現的變數和轉義序列不會被變數的值取代。
【天涯注】也就是說,單引號裡面的變數不會被解析,會被當作字串輸出。
字串中的字元可以透過在字串之後用花括號指定所要字元從零開始的偏移量來存取和修改。
$str = 'Hello World!';
echo $str{1}; // 輸出 e
?>
Note: unset() 函數允許取消一個陣列中的鍵名。要注意數組將不會重建索引。
應該始終在用字串表示的陣列索引上加上引號。例如用 $foo['bar'] 而不是 $foo[bar]。但是為什麼 $foo[bar] 錯了呢?可能在舊的腳本中看過如下語法:
$foo[bar] = 'enemy';
echo $foo[bar];
?>
echo $foo[bar];
?>
Note: 重申一次,在雙引號字串中,不給索引加上引號是合法的因此 “$foo[bar]“是合法的。
允許的強制轉換有:
(int),(integer) - 轉換成整型
(bool),(boolean) - 轉換成布林型
(float),(double),(real) - 轉換成浮點型
(string) - 轉換成字串
(array) - 轉換成陣列
(object) - 轉換成物件
空格注意在括號內允許有空格和製表符
表符
Note: 在沒有定義變數 $x 的時候,諸如 if ($x) 的用法會導致一個 E_NOTICE 等級的錯誤。所以,可以考慮用 empty() 或 isset() 函數來初始化變數。
Note: 儘管 ! 比 = 的優先權高,PHP 仍舊允許類似如下的表達式:if (!$a = foo()),在此例中 foo() 的輸出被賦給了 $a。