繼《PHP 不需要另一個樣版引擎》,我再補充一些內容。
PHP 本身就是一個 SGML,XML,HTML 等 markup language document 用的解析器 (parser) ,所以就像一份 XML 文件必須標示 <?xml ?> 一樣, PHP 要求自己包含在 <?php ?> 標籤中。上文說了,這是 SGML 規範內容。儘管我們可以把 PHP 當一個純粹的程式語言,但還是要把 code 放在標籤中。這個怪僻在 Perl, Python, Ruby 中可看不到。
...繼續閱讀繼《PHP 不需要另一個樣版引擎》,我再補充一些內容。
PHP 本身就是一個 SGML,XML,HTML 等 markup language document 用的解析器 (parser) ,所以就像一份 XML 文件必須標示 <?xml ?> 一樣, PHP 要求自己包含在 <?php ?> 標籤中。上文說了,這是 SGML 規範內容。儘管我們可以把 PHP 當一個純粹的程式語言,但還是要把 code 放在標籤中。這個怪僻在 Perl, Python, Ruby 中可看不到。
...繼續閱讀前幾天我看到 phpPatterns 的《PHP and Templates》,作者舉了很多例子說明 PHP 不需要使用樣版引擎。我個人的經驗與該作者一樣, PHP 確實不需要使用樣版引擎。因為 PHP 本身就是一種樣版引擎,在樣版引擎上再加一個樣版引擎是多此一舉。
...繼續閱讀這幾天我和 HACGIS (トキメキ) 在討論 PHP 的參照 (reference) 特性。對於參照的功用,我想我們都很清楚了,還不了解的讀者可以先參閱《PHP Manual::Chapter 21. References Explained》以及 HACGIS 的《使用參照的幾個原則》,HACGIS 的文章是本文討論內容的起點。
...繼續閱讀在 PHP 中能否以「中文字」作為變數、常數、函數的符號名稱呢?當然可以,但現階段有些注意事項與使用障礙。本文是個人經驗,供各位參考 (對了,我個人不將程式語言視為「英文」。而那些以 a-z0-9 等字母組成的符號,我僅將其視為視覺識別符號。嘿嘿,畢竟我英語發音很差,那些字大多數是以字形識別其意的)。
...繼續閱讀我先前為了測試 PHP5 的 reflection 能力,找到《Benchmarking dynamic function/method calls》為參考文章,寫了一段效率測試碼。剛好今天看到 HACGIS 也做了《各種呼叫方式的比較》。因為 HACGIS 沒測到 reflection 的部份,所以把我的效率測試碼也放上來供各位參考。
...繼續閱讀
HTML 表單傳送給 PHP 的資料, PHP 會自動儲存在全域陣列中,例如以 POST method 送出的表單資料便儲存在 $_POST 全域陣列,以 GET method 送出的表單資料儲存在 $_GET 全域陣列。如果我們為表單元件命名 (指派了 name 屬性) ,則可以表單元件名稱為陣列鍵值。例如表單有一個名稱為 "userAddress" 的文字輸入欄位 <input name="userAddress" type="text"/> ,且此表單以 POST method 送出,則 PHP 中可以 $_POST['userAddress'] 取得使用者在此欄位中輸入的資料。上述是 PHP 處理表單資料的基本概念。
近來的軟體開發流程強調「測試驅動開發 (Test-Driven Develope)」,對於單元測試 (unit test) 發展出了一些系統化的作法和工具,這類單元測試工具俗稱 xUnit ,例如 C 語言的 CUnit , Java 的 JUnit , .NetFramework 的 NUnit 。 PHP 也有 PHPUnit 。
安裝 PHPUnit 其實很簡單,基本上按 PHPUnit 的《Installation》的步驟即可完成安裝。只是我在 Windows 平台上做了一些修改。
...繼續閱讀
PHP 的比較算符中 (Comparison Operators) 提供了兩種相等算符,一為 Equal 算符(==),另一為 Identical 算符 (===)。這兩種算符是因應 PHP 的型態彈性 (或稱動態型) 而設置,其差異在於 Equal 算符會自動轉換兩側變數的型態,而 Identical 算符不會轉換型態,因此 Identical 算符要求值以及型態皆相等才為 True 。
我前幾天發現 blog 邊欄訂閱的 RSS 欄位的內容沒有顯示出來,追蹤了一會兒,發現是 blog 系統在輸出 RSS 內容時,沒有處理換行字元,令 JavaScript 碰到非預期的敘述斷行導致執行失敗。追蹤過程中,我順手寫了一個 PHP 程式測試這個狀況。後來我把這程式擴充一下,改寫成一個簡單的 RSS 閱讀器。
這個 PHP 程式,使用 SimpleXML functions 處理 RSS 文件,並且實踐了一個非常簡單的 MVC 架構。
...繼續閱讀