PHP初學感言

PHP 在網頁開發社群內普遍被眾人鄙視的程式語言。大家以往對於PHP都抱著資安防護弱、程式結構亂的負面印象,Python入門的我對於PHP的觀點也只用從網絡社群聽來。因為接了一些案子的緣故,我被迫要去認真的深入探討PHP,這過程讓我對於PHP有了深度的改觀。

資深網絡開發員Travis Neilson 說過  “ 無論你使用任何的框架開發網頁,最中心的核心還是逃不過 Javascript, CSS和 HTML. 與其在猶豫到底要從何下手,不如開始實作才是最重要的。 “

說了那麼多廢話,我們來看看PHP究竟

phphelloworld.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 的使用方式吧。

if-else

….到了這裡我已經懶得繼續寫下去了,沒錯,他們的型態都與C語言一樣,唯獨變數無須特別宣告。

PHP的物件導向特色 - class, private, static, protected, inheritance (extends)

class

bottle.php

UnitCounter.incScreen Shot 2016-05-25 at 3.14.24 AM

繼承 Inheritance:

繼承准許類別繼承某個現有的父類別的能力。

extend

除非函數被宣告為private , 否則衍生的類別都能使用。

若子類別和父類別內都有constructor則函數只會呼叫子類別的constructor而已。

函數重新定義

redefine-class

Exception Model

描述throw與 try…catch 實在例外的情況跳出錯誤處理程式的方法之一,這個是為了解決大錯誤而終止程式。利用丟出例外,捕抓例外並加以處理。throw 一般與 try…catch結合使用。

try-exception

http://php.net/manual/zh/

範例參考自:《PHP與MySQL 應用實例》

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s