日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

如何成為PHP高手_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:PHP多個接口同個方法
如果有多個接口有一個相同的方法名,且不是繼承出來的,PHP是不允許的 如下實例: php; interface a{ public function x(); } interface b{ public function x(); } class c implements a,b{ public function x(); } 報如下錯誤: Can't inherit abstract function b::x()

   PHP是一門高效的網(wǎng)絡(luò)編程語言,由于它具有編寫靈活、運行快速等優(yōu)點,迅速成為Web程序員的首選語言。那么怎樣才能成為一個優(yōu)秀的PHP開發(fā)者呢?

  要成為一名PHP編程高手并不容易,并不像很多人想象的那樣,只要能夠飛快地編寫幾條簡單的代碼去解決一個復(fù)雜的問題就是PHP編程高手了,真正的PHP高手還需要考慮更多的其它問題。以下三條準(zhǔn)則是一名成熟的PHP程序員在編程中應(yīng)該首先遵循的準(zhǔn)則。

  ◆懶惰是金

  ◆編寫漂亮的代碼

  ◆追求程序的速度,而不是編程的速度

  懶惰是金

  做一個懶惰的程序員嗎?這個想法太奇怪了!因為這個世界上最忙碌的人可能就是計算機程序員了。但正是因為程序員太忙了,所以才應(yīng)該在編程時學(xué)會偷懶。對于一個程序員來說,懶惰的方法有兩種:

  其一,大膽使用現(xiàn)成的別人的程序代碼,把這些代碼融入到你自己的程序或者項目中去。其二是編寫一些有用的代碼建立一個函數(shù)庫,在將來編寫程序時可以順手拈來,省去了許多重復(fù)的勞動,自然就可以懶惰一點了。這兩種偷懶的方法都非常適合PHP程序員了。

  首先,PHP是在自由開放的環(huán)境中誕生和成長的一門語言。在世界各地,有成千上萬的程序員,他們一直在為PHP的完美而不斷奮斗,他們也愿意和別人分享自己的聰明才智和自己編寫的代碼。你每天都可以從一些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)點之一是具有很強大的數(shù)據(jù)庫處理能力。但是,在PHP中,對于不同的數(shù)據(jù)庫都使用一些特定的函數(shù)來專門處理,缺少通用的數(shù)據(jù)庫處理函數(shù)。這大大降低了程序代碼的可移植性,這也為初學(xué)編程的朋友帶來了很多不便。

  在網(wǎng)上,許多程序員都通過封裝類解決了這個問題。他們編寫了統(tǒng)一的函數(shù)用來處理任何流行的數(shù)據(jù)庫——不管是在Linux世界深受歡迎的Mysql還是在Windows平臺上廣泛流行的SqlServer。

  就筆者個人來說,非常喜歡使用這些函數(shù),因為可以直接使用一些簡單的諸如”query”、”next_record”之類的函數(shù),而不需要考慮數(shù)據(jù)庫的連接、數(shù)據(jù)庫句柄這些復(fù)雜的東西,更不需要考慮使用的是何種數(shù)據(jù)庫。如果你需要這些函數(shù),你可以通過訪問以下的幾個網(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等高級語言那樣有集成的編譯調(diào)試環(huán)境,也不想Perl那樣可以在Linux或者DOS環(huán)境下直接運行。其實,我們完全可以通過靈活地使用echo語句來完成對PHP的調(diào)試工作。下面的幾個函數(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 (emptyempty($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ù)組和對象)的類型和值:

  echo ss_as_string($my_variable);

  使用下面的語句,我們可以直接查看程序中所有的變量的值:

  echo ss_as_string($GLOBALS);

  3. 控制Log信息的函數(shù)

  調(diào)試PHP  程序的另外一種重要的方法就是查看Log信息。如果能夠方便地控制Log信息的級別以及Log信息的顯示內(nèi)容,將會給程序調(diào)試帶來更多的便利。下面的幾個函數(shù)可以方便地實現(xiàn)這個功能。

  $ss_log_level = 0; $ss_log_filename = /tmp/ss-log; $ss_log_levels = array(  NONE => 0,  ERROR => 1,  INFO => 2,  DEBUG => 3); function ss_log_set_level ($level = ERROR) {  global $ss_log_level;  $ss_log_level = $level; } function ss_log ($level, $message) {  global $ss_log_level, $ss-log-filename;  if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) { // 不顯示Log信息 return false;  }  $fd = fopen($ss_log_filename, "a+");  fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message."n");  fclose($fd);  return true; } function ss_log_reset () {  global $ss_log_filename;  @unlink($ss_log_filename); }

  在上面的函數(shù)中,有四個Log級別變量。運行PHP程序時,只有當(dāng)Log的級別低于預(yù)設(shè)的級別值時,Log信息才可以被記錄和顯示出來。例如,在程序中加入如下的一條語句:

  ss_log_set_level(INFO);

  那么,運行PHP程序時,只有ERROR和INFO級別的LOG信息才能被記錄和顯示出來,DEBUG級的信息則被忽略了。除此之外,我們還可以設(shè)定顯示的信息內(nèi)容,其語句如下:

  ss_log(ERROR, "testing level ERROR");

  ss_log(INFO, "testing level INFO");

  ss_log(DEBUG, "testing level DEBUG");

  你也可以隨時使用下面的語句清空LOG信息:

  4.速度測試函數(shù)

  為了優(yōu)化代碼,我們需要一種可以測試代碼運行時間的方法,從而來選擇最優(yōu)的代碼。下面的函數(shù)可以測試運行代碼所需的時間:

分享:php程序調(diào)試方法總結(jié)
相信很多朋友們都有調(diào)試程序的經(jīng)歷,然而很多時候調(diào)試程序是痛苦而又漫長的過程;它不僅需要細心,更需要耐心,切忌心浮氣躁。但是當(dāng)找出問題并順利解決它時,又會給人無比激動的喜悅。這里總結(jié)一下筆者在程序調(diào)試中的使用的原則,工具,以及方法。這里需要說明的是,某

共3頁上一頁123下一頁
來源:模板無憂//所屬分類:PHP教程/更新時間:2013-05-03
相關(guān)PHP教程