怎樣成為PHP高手_PHP教程
推薦:概述怎樣用新PHP插件實(shí)現(xiàn)MySQL為基礎(chǔ)的事務(wù)事務(wù)處理支持很長(zhǎng)時(shí)間以來(lái)一直是大多數(shù)MySQL開(kāi)發(fā)者的心愿,隨著MySQL 4.0的發(fā)布,這個(gè)心愿最后終于得以實(shí)現(xiàn)。MySQL 4.0后不久,擁有一個(gè)新的MySQL插件的PHP 5.x也發(fā)布了。這個(gè)新插件,MySQL Improved,使得PHP開(kāi)發(fā)者通過(guò)利用本地的PHP函數(shù),獲得了這些新的事
PHP是一門高效的網(wǎng)絡(luò)編程語(yǔ)言,由于它具有編寫(xiě)靈活、運(yùn)行快速等優(yōu)點(diǎn),迅速成為Web程序員的首選語(yǔ)言。前不久的一份權(quán)威調(diào)查表明,現(xiàn)在已經(jīng)有31.6%的網(wǎng)站使用PHP作為主要的服務(wù)器端編程語(yǔ)言。
但是,要成為一名PHP編程高手卻并不容易。并不像很多人想象的那樣,只要能夠飛快地編寫(xiě)幾條簡(jiǎn)單的代碼去解決一個(gè)復(fù)雜的問(wèn)題就是PHP編程高手了,真正的PHP高手還需要考慮更多的其它問(wèn)題。以下三條準(zhǔn)則是一名成熟的PHP程序員在編程中應(yīng)該首先遵循的準(zhǔn)則。
1.懶惰是金
2.編寫(xiě)漂亮的代碼
3.追求程序的速度,而不是編程的速度
一、懶惰是金
做一個(gè)懶惰的程序員嗎?這個(gè)想法太奇怪了!因?yàn)檫@個(gè)世界上最忙碌的人可能就是計(jì)算機(jī)程序員了。但正是因?yàn)槌绦騿T太忙了,所以才應(yīng)該在編程時(shí)學(xué)會(huì)偷懶。
對(duì)于一個(gè)程序員來(lái)說(shuō),懶惰的方法有兩種:其一,大膽使用現(xiàn)成的別人的程序代碼,把這些代碼融入到你自己的程序或者項(xiàng)目中去。其二是編寫(xiě)一些有用的代碼建立一個(gè)函數(shù)庫(kù),在將來(lái)編寫(xiě)程序時(shí)可以順手拈來(lái),省去了許多重復(fù)的勞動(dòng),自然就可以懶惰一點(diǎn)了。
這兩種偷懶的方法都非常適合PHP程序員了。
首先,PHP是在自由開(kāi)放的環(huán)境中誕生和成長(zhǎng)的一門語(yǔ)言。在世界各地,有成千上萬(wàn)的程序員,他們一直在為PHP的完美而不斷奮斗,他們也愿意和別人分享自己的聰明才智和自己編寫(xiě)的代碼。你每天都可以從一些PHP網(wǎng)站、郵件列表、新聞組發(fā)現(xiàn)大量的優(yōu)秀的程序代碼。這樣說(shuō),我并不是鼓勵(lì)你整天等著讓別人為你編寫(xiě)代碼,但是你可以“站在偉人的肩膀上”,充分發(fā)揚(yáng)“拿來(lái)主義”,聰明地應(yīng)用別人的程序代碼可以節(jié)省你大量時(shí)間。其次,在PHP中,你可以方便地建立自己的函數(shù)庫(kù),這樣可以在你以后編寫(xiě)程序時(shí)省去很多麻煩。
下面筆者為大家介紹幾個(gè)通用的函數(shù),這些函數(shù)有的來(lái)自網(wǎng)上的一些開(kāi)放源代碼的項(xiàng)目,有的精選自郵件列表。如果你能把它們加入到你自己的函數(shù)庫(kù)中,遲早你將會(huì)發(fā)現(xiàn)自己受益無(wú)窮。
1.通用數(shù)據(jù)庫(kù)處理函數(shù)
和其它的CGI函數(shù)相比,PHP的優(yōu)點(diǎn)之一是具有很強(qiáng)大的數(shù)據(jù)庫(kù)處理能力。但是,在PHP中,對(duì)于不同的數(shù)據(jù)庫(kù)都使用一些特定的函數(shù)來(lái)專門處理,缺少通用的數(shù)據(jù)庫(kù)處理函數(shù)。這大大降低了程序代碼的可移植性,這也為初學(xué)編程的朋友帶來(lái)了很多不便。
在網(wǎng)上,許多程序員都通過(guò)封裝類解決了這個(gè)問(wèn)題。他們編寫(xiě)了統(tǒng)一的函數(shù)用來(lái)處理任何流行的數(shù)據(jù)庫(kù)——不管是在Linux世界深受歡迎的Mysql還是在Windows平臺(tái)上廣泛流行的SqlServer。就筆者個(gè)人來(lái)說(shuō),非常喜歡使用這些函數(shù),因?yàn)榭梢灾苯邮褂靡恍┖?jiǎn)單的諸如"query"、"next_record"之類的函數(shù),而不需要考慮數(shù)據(jù)庫(kù)的連接、數(shù)據(jù)庫(kù)句柄這些復(fù)雜的東西,更不需要考慮使用的是何種數(shù)據(jù)庫(kù)。
如果你需要這些函數(shù),你可以通過(guò)訪問(wèn)以下的幾個(gè)網(wǎng)址而得到:
http://phplib.netuse.de/
http://phpclasses.UpperDesign.com/browse.html/package/20
http://phpdb.linuxbox.com/
2.變量調(diào)試函數(shù)
PHP程序的調(diào)試一直是一件讓人頭疼的事,它既不像VB等高級(jí)語(yǔ)言那樣有集成的編譯調(diào)試環(huán)境,也不想Perl那樣可以在Linux或者DOS環(huán)境下直接運(yùn)行。其實(shí),我們完全可以通過(guò)靈活地使用echo語(yǔ)句來(lái)完成對(duì)PHP的調(diào)試工作。
下面的幾個(gè)函數(shù)可以讓你隨時(shí)查看程序中任何變量的類型及其值。
function ss_array_as_string (&$array, $column = 0) {
$str = "Array(
n";
while(list($var, $val) = each($array)){
for ($i = 0; $i < $column 1; $i ){
$str .= " ";
}
$str .= $var. ==> ;
$str .= ss_as_string($val, $column 1)."
n";
}
for ($i = 0; $i < $column; $i ){
$str .= " ";
}
return $str.);
}
function ss_object_as_string (&$object, $column = 0) {
if (empty($object->classname)) {
return "$object";
}
else {
$str = $object->classname."(
n";
while (list(,$var) = each($object->persistent_slots)) {
for ($i = 0; $i < $column; $i ){
$str .= " ";
}
global $$var;
$str .= $var. ==> ;
$str .= ss_as_string($$var, column 1)."
n";
}
for ($i = 0; $i < $column; $i ){
$str .= " ";
}
return $str.);
}
}
function ss_as_string (&$thing, $column = 0) {
if (is_object($thing)) {
return ss_object_as_string($thing, $column);
}
elseif (is_array($thing)) {
return ss_array_as_string($thing, $column);
}
elseif (is_double($thing)) {
return "Double(".$thing.")";
}
elseif (is_long($thing)) {
return "Long(".$thing.")";
}
elseif (is_string($thing)) {
return "String(".$thing.")";
}
else {
return "Unknown(".$thing.")";
}
}
需要的時(shí)候,在程序中簡(jiǎn)單地加入下面的一條代碼即可查看程序中的所使用的變量(包括數(shù)組和對(duì)象)的類型和值:
echo ss_as_string($my_variable);
使用下面的語(yǔ)句,我們可以直接查看程序中所有的變量的值:
echo ss_as_string($GLOBALS);
分享:如何在PHP中執(zhí)行系統(tǒng)外部命令PHP作為一種服務(wù)器端的腳本語(yǔ)言,象編寫(xiě)簡(jiǎn)單,或者是復(fù)雜的動(dòng)態(tài)網(wǎng)頁(yè)這樣的任務(wù),它完全能夠勝任。但事情不總是如此,有時(shí)為了實(shí)現(xiàn)某個(gè)功能,必須借助于操作系統(tǒng)的外部程序(或者稱之為命令),這樣可以做到事半功倍。 那么,是否可以在PHP腳本中調(diào)用外部命令呢
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-怎樣成為PHP高手。