資源描述:
《成為PHP編程高手應(yīng)該遵循的三個準則》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、成為PHP編程高手應(yīng)該遵循的三個準則PHP是一門高效的網(wǎng)絡(luò)編程語言,由于它具有編寫靈活、運行快速等優(yōu)點,迅速成為Web程序員的首選語言。前不久的一份權(quán)威調(diào)查表明,現(xiàn)在已經(jīng)有31.6%的網(wǎng)站使用PHP作為主要的服務(wù)器端編程語言。?但是,要成為一名PHP編程高手卻并不容易。并不像很多人想象的那樣,只要能夠飛快地編寫幾條簡單的代碼去解決一個復雜的問題就是PHP編程高手了,真正的PHP高手還需要考慮更多的其它問題。以下三條準則是一名成熟的PHP程序員在編程中應(yīng)該首先遵循的準則。1.懶惰是金2.編寫漂亮的代碼3.追求程序的速度,而不是編程的速度一、懶惰是金做一個懶惰
2、的程序員嗎?這個想法太奇怪了!因為這個世界上最忙碌的人可能就是計算機程序員了。但正是因為程序員太忙了,所以才應(yīng)該在編程時學會偷懶。對于一個程序員來說,懶惰的方法有兩種:其一,大膽使用現(xiàn)成的別人的程序代碼,把這些代碼融入到你自己的程序或者項目中去。其二是編寫一些有用的代碼建立一個函數(shù)庫,在將來編寫程序時可以順手拈來,省去了許多重復的勞動,自然就可以懶惰一點了。這兩種偷懶的方法都非常適合PHP程序員了。?首先,PHP是在自由開放的環(huán)境中誕生和成長的一門語言。在世界各地,有成千上萬的程序員,他們一直在為PHP的完美而不斷奮斗,他們也愿意和別人分享自己的聰明才智和
3、自己編寫的代碼。你每天都可以從一些PHP網(wǎng)站、郵件列表、新聞組發(fā)現(xiàn)大量的優(yōu)秀的程序代碼。這樣說,我并不是鼓勵你整天等著讓別人為你編寫代碼,但是你可以“站在偉人的肩膀上”,充分發(fā)揚“拿來主義”,聰明地應(yīng)用別人的程序代碼可以節(jié)省你大量時間。其次,在PHP中,你可以方便地建立自己的函數(shù)庫,這樣可以在你以后編寫程序時省去很多麻煩。下面筆者為大家介紹幾個通用的函數(shù),這些函數(shù)有的來自網(wǎng)上的一些開放源代碼的項目,有的精選自郵件列表。如果你能把它們加入到你自己的函數(shù)庫中,遲早你將會發(fā)現(xiàn)自己受益無窮。1.通用數(shù)據(jù)庫處理函數(shù)和其它的CGI函數(shù)相比,PHP的優(yōu)點之一是具有很強大
4、的數(shù)據(jù)庫處理能力。但是,在PHP中,對于不同的數(shù)據(jù)庫都使用一些特定的函數(shù)來專門處理,缺少通用的數(shù)據(jù)庫處理函數(shù)。這大大降低了程序代碼的可移植性,這也為初學編程的朋友帶來了很多不便。在網(wǎng)上,許多程序員都通過封裝類解決了這個問題。他們編寫了統(tǒng)一的函數(shù)用來處理任何流行的數(shù)據(jù)庫——不管是在Linux世界深受歡迎的Mysql還是在Windows平臺上廣泛流行的SqlServer。就筆者個人來說,非常喜歡使用這些函數(shù),因為可以直接使用一些簡單的諸如"query"、"next_record"之類的函數(shù),而不需要考慮數(shù)據(jù)庫的連接、數(shù)據(jù)庫句柄這些復雜的東西,更不需要考慮使用的
5、是何種數(shù)據(jù)庫。2.變量調(diào)試函數(shù)PHP程序的調(diào)試一直是一件讓人頭疼的事,它既不像VB等高級語言那樣有集成的編譯調(diào)試環(huán)境,也不想Perl那樣可以在Linux或者DOS環(huán)境下直接運行。其實,我們完全可以通過靈活地使用echo語句來完成對PHP的調(diào)試工作。下面的幾個函數(shù)可以讓你隨時查看程序中任何變量的類型及其值。以下為引用的內(nèi)容:functionss_array_as_string(&$array,$column=0){$str="Array(n";while(list($var,$val)=each($array)){for($i=0;$i<$column+1;
6、$i++){$str.="&nbsp;&nbsp;&nbsp;&nbsp;";}$str.=$var.==>;$str.=ss_as_string($val,$column+1)."n";}for($i=0;$i<$column;$i++){$str.="&nbsp;&nbsp;&nbsp;&nbsp;";}return$str.);}functionss_object_as_string(&$object,$column=0){if(empty($object->classname)){return"$object";}else{$str=$object
7、->classname."(n";while(list(,$var)=each($object->persistent_slots)){for($i=0;$i<$column;$i++){$str.="&nbsp;&nbsp;&nbsp;&nbsp;";}global$$var;$str.=$var.==>;$str.=ss_as_string($$var,column+1)."n";}for($i=0;$i<$column;$i++){$str.="&nbsp;&nbsp;&nbsp;&nbsp;";}return$str.);}}functionss_
8、as_string(&$thing,$column=0){if(i