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 應用實例》

這巷子裡的歲月

DSC_0019
好有趣的招牌

趁著來台北出席一場有趣的文學獎決審會議的機會,我來到了忠孝敦化區拜訪一間星馬(新加坡與馬來西亞)餐廳—【Mamak檔】星馬料理。 從忠孝敦化區一路走到目的地的路上,都是具有獨特個性的服裝店、咖啡廳、酒吧,是一條富有生命力的街道。

街道上的商店少了台灣與中國普遍使用刺眼的亮色招牌,取而代之的是輕鬆,隨意的店面設計。從街道望向街尾,是一道和諧舒適的景色。路上與我插肩而過的,是各種身穿年輕裝扮的路人。有些成群結伴,其餘則成雙入對。這裡屬於他們的街道,而我才是街道上的路人。

在街道裡穿梭,難免會有些被人忽視的角落。這些角落裡,都是在支撐繁華街道的幕後人員。而他們臉上露出與街道主人相反的臉色:疲累、失落、無力。

DSC_0021

我經過一家售賣自制工藝品的店面,透展示窗的反光,看見了一位正在收拾紙皮的叔叔。我回頭看著他,緩慢地將紙皮一張一張堆疊、捆紮。這場景,不是與每天6點半清理我宿舍的清潔阿姨一樣嗎?阿姨每天早晨清理垃圾桶、洗刷廁所的發霉的磁磚、清洗馬桶水槽。這累人的工作,全是一位阿姨一手包辦打理著一層樓的基礎衛生。她照顧的廁所地面也許比某些數月未清掃過的房間還乾淨。阿姨年紀看似不輕,年紀應該接近四五十來歲。

一個完整的社會,有如金字塔一般,越是基礎的工作,越是依賴人力資源才能完成。而我們處在的社會,在沒有先進廉價的機器人取代這些工作前,只能依賴年長一代來代勞。然而當現有教育的目的都是為了未來能有高薪低勞力高思考性的工作時,10年後,當這些學生出來畢業以後,年長一代退休後,這些工作究竟誰來代勞?