首頁 >php教程 >PHP开发 >摘自PHP手冊[1] – 需要注意的基礎知識

摘自PHP手冊[1] – 需要注意的基礎知識

黄舟
黄舟原創
2016-12-22 10:08:571223瀏覽

話說天涯最近利用空閒時間要完整的讀一遍手冊,話說會在博客裡面發布一些自認為我們容易忽略的東西。不多說,第一篇。

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];
?>


,但可以正常運作。那為什麼錯了呢?原因是此程式碼中有一個未定義的常數(bar)而不是字串(’bar’-注意引號),而 PHP 可能會在以後定義此常數,不幸的是你的程式碼中有同樣的名字。它能運行,是因為 PHP 自動將裸字串(沒有引號的字串且不對應於任何已知符號)轉換成其值為該裸字串的正常字串。例如,如果沒有常數定義為 bar,PHP 將把它替換為 ‘bar’ 並使用之。

Note: 重申一次,在雙引號字串中,不給索引加上引號是合法的因此 “$foo[bar]“是合法的。

允許的強制轉換有:




(int),(integer) - 轉換成整型
(bool),(boolean) - 轉換成布林型
(float),(double),(real) - 轉換成浮點型
(string) - 轉換成字串
(array) - 轉換成陣列
(object) - 轉換成物件

空格注意在括號內允許有空格和製表符
表符

: HTML 表單不會傳遞整數、浮點數或布林值,它們只傳遞字串。要檢測一個字串是不是數字,可以使用 is_numeric() 函數。

Note: 在沒有定義變數 $x 的時候,諸如 if ($x) 的用法會導致一個 E_NOTICE 等級的錯誤。所以,可以考慮用 empty() 或 isset() 函數來初始化變數。

Note: 儘管 ! 比 = 的優先權高,PHP 仍舊允許類似如下的表達式:if (!$a = foo()),在此例中 foo() 的輸出被賦給了 $a。

以上就是摘自PHP手冊[1] – 需要注意的基礎知識的內容,更多相關內容請關注PHP中文網(www.php.cn)!


🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn