PHP 在網頁開發社群內普遍被眾人鄙視的程式語言。大家以往對於PHP都抱著資安防護弱、程式結構亂的負面印象,Python入門的我對於PHP的觀點也只用從網絡社群聽來。因為接了一些案子的緣故,我被迫要去認真的深入探討PHP,這過程讓我對於PHP有了深度的改觀。
資深網絡開發員Travis Neilson 說過 “ 無論你使用任何的框架開發網頁,最中心的核心還是逃不過 Javascript, CSS和 HTML. 與其在猶豫到底要從何下手,不如開始實作才是最重要的。 “
說了那麼多廢話,我們來看看PHP究竟
可以看得出,php內容開始於”<?php “ 結束於 ” ?>”, 因此在一個php擋中可以有無數個 這樣的標籤重複出現,很容易使程式碼變得混亂。
PHP的語法
Php 的語法的特點在於 變數無時無刻都會有 $在變數前方,而編寫時不需要給予任何預設記憶體。預設初值就決定了變數的型態,例如
$double = 0.11;
$int = 1;
$string = “67812”;
$boolen = true;
$convert = (double)$string; //各種變數切換與c的type casting使用一樣
$array = array{24,432,412,5432,213,12};
這些都是我們在c中常見的變數型態,而PHP本身卻有其他變化的變數型態,例如:
$dictionary = array{ “one” => “Steve”, “two”=> “Jane”,”three” =>”Kelvin” };
echo $dictionary[“one”] //這會印出: Steve
每個陣列的元素可以用一個索引鍵來呼叫(“one” 是 “steve”的索引鍵 ),因此這與Python的Dictionary又非常相似,而這樣的資料型態也經常使用到。可是要注意,如果陣列經過asort()函數處理過以後,索引鍵就會消失。
因此需要參考ksort(), 或自訂函數來排序陣列。
接著我們來看看其他if..else, while, do{}while, switch 的使用方式吧。
….到了這裡我已經懶得繼續寫下去了,沒錯,他們的型態都與C語言一樣,唯獨變數無須特別宣告。
PHP的物件導向特色 - class, private, static, protected, inheritance (extends)
繼承 Inheritance:
繼承准許類別繼承某個現有的父類別的能力。
除非函數被宣告為private , 否則衍生的類別都能使用。
若子類別和父類別內都有constructor則函數只會呼叫子類別的constructor而已。
函數重新定義
Exception Model
描述throw與 try…catch 實在例外的情況跳出錯誤處理程式的方法之一,這個是為了解決大錯誤而終止程式。利用丟出例外,捕抓例外並加以處理。throw 一般與 try…catch結合使用。
範例參考自:《PHP與MySQL 應用實例》