二、編寫漂亮的**
1.將後台程式與前端程式分開
在編寫php程式時,有些**是用來處理一些事務,例如運算元據庫、進行數**算等,而另外的一些**則只是事務處理的結果顯示出來,例如一些使用echo語句將結果以html的格式顯示在wwww.cppcns.comeb瀏覽器上的php**以及那些直接嵌入php程式的html**。首先我們應該清晰地區分這兩種**,把前者稱為後台程式,把後者稱為前端程式。
因為php是一種嵌入式程式語言,也就是說,所有的php**都可以嵌入到html**mktvf之中,這為程式的編寫帶來了許多便利之處。但是,「物極必反」,如果在一段較長的程式中將php**和html**混合編寫,這將使程式雜亂無章,不利於程式的維護和閱讀。所以我們需要盡可能地將這些程式中混雜於html**中的php**移植出來,在專門的檔案中將這些**封裝成函式,然後在html**中使用include語句來包含這些檔案,在適當的位置呼叫這些函式即可。
這種做法一方面使html**和php**都簡單易讀,另一方面因為html**需要不斷更新,而這種分離的方法可以確保後台程式不會被破壞。
同前端程式不同,後台程式更多追求的是穩定、結構化,極少更改,所以應該認真地設計和管理。其實,在設計臺程式時,投入大量時間是值得的,「現在栽樹,以後乘涼」,在以後的設計工作中將可以輕鬆地使用現在編寫的後台程式。
2.靈活使用包含檔案
正如前面所說的那樣,後台程式應當安排在一系列的包含檔案中。包含檔案可以通過include語句在需要時動態裝入,也可以在php.ini檔案中通過使用auto_prepend_file指令預先自動裝入。
如果使用後一種方法的話,雖然取得了一勞永逸的好處,但是也有一些缺點值得我們注意。下面的一段**向我們展示了解析乙個龐大的包含檔案需要一定的時間:
require(timing.inc);
ss_timing_start();
include(test.inc);
ss_timing_stop();
echo
.ss_timing_current().
?>
在上面的**中,test.inc是乙個1000行的包含檔案,執行的結果顯示,解析這個包含檔案花費了0.6秒鐘,對於乙個大型**來說,這個速度並不是可以忽略不記的。
使用包含檔案的另外乙個缺點是:如果乙個檔案中的乙個語句發生錯誤,將會使整個**的php程式都無法執行。所以使用起來也及其小心。
其實,對包含檔案稍做處理,即可以使包含檔案只在需要時進行www.cppcns.com解析。下面的**使abc.inc檔案只在程式需要時才作解析:
if ( defined( __liba_inc) ) return;
define( __liba_inc, 1 );
/* * **...
*/ ?>
3.使用物件導向的程式設計方法
php也是一種物件導向的語言,物件導向的程式設計方法是優秀的程式設計師們非常推崇的一種軟體設計方法,在php程式設計中可以充分發揮物件導向語言的優勢,對程式設計中的物件進行封裝。在前面的**中,我們使用了物件導向的方法,例如在管理資料庫時,我們將query()函式封裝進資料庫類中,這極大地方便了**的管理,增加了程式的可讀性。
三、追求程式速度,而不是程式設計的速度
在**建設中,程式執行速度和網頁**速度都是關係成敗的重要因素。作為一名web程式設計師,應該更加注意**的執行速度。下面介紹的幾種方法都在不同程度上提高了**的執行速度。
1.使用內嵌的html**,而不是php的echo語句。
因為php是一門嵌程式設計客棧入式web程式語言,可以將html**和php**相互嵌入。但是很多程式設計師擔心在html**中過多的使用""嵌入php**會多次呼叫php直譯器,從而降低了php**的執行速度,所以寧願使用php的echo語句來輸出html代程式設計客棧碼,而不直接使用html**。但事實卻恰恰相反。每乙個php頁面只呼叫一次php直譯器來解釋所有的php**,所以,只在需要時才嵌入php**,而大多數的時候直接使用html**輸入結果,不但不會降低程式的執行速度,而且因為減少了對echo語句的解析,往往可以提高**的執行速度。
下面的一段**證明了我們的結論。在這段**中,我們使用了前面介紹的時間測試函式。
本文標題: php 高手之路(二)
本文位址:
PHP高手之路
2.變數除錯函式 php程式的除錯一直是一件讓人頭疼的事,它既不像vb等高階語言那樣有整合的編譯除錯環境,也不想perl那樣可以在linux或者dos環境下直接執行。其實,我們完全可以通過靈活地使用echo語句來完成對php的除錯工作。下面的幾個函式可以讓你隨時檢視程式中任何變數的型別及其值。fun...
PHP高手之路 2
二 編寫漂亮的 1.將後台程式與前端程式分開 在編寫php程式時,有些 是用來處理一些事務,例如運算元據庫 進行數 算等,而另外的一些 則只是事務處理的結果顯示出來,例如一些使用echo語句將結果以html的格式顯示在web瀏覽器上的php 以及那些直接嵌入php程式的html 首先我們應該清晰地區...
PHP 高手之路(三)
使用str replace而不是ereg replace n程式設計客棧bsp 習慣使用perl進行程式設計的程式設計師更加願意使用ereg replace完成字串替換工作,因為在php中ereg replace的用法和perl中模式匹配的用法相近。但是,下面的這段 證明,使用str replace...