搜尋
首頁後端開發php教程PHP 高手之路(一)_PHP教程
PHP 高手之路(一)_PHP教程Jul 21, 2016 pm 04:04 PM
php優點快速靈活編寫程式設計語言網路運行高手高效率

PHP是一門高效率的網路程式語言,由於它具有編寫靈活、運行快速等優點,迅速成為Web程式設計師的首選語言。前不久的一項權威調查表明,現在已經有31.6%的網站使用PHP作為主要的伺服器端程式語言。
  但是,要成為PHP程式設計高手卻並不容易。並不像很多人想像的那樣,只要能夠飛快地編寫幾條簡單的程式碼去解決一個複雜的問題就是PHP程式設計高手了,真正的PHP高手還需要考慮更多的其它問題。以下三個準則是一名成熟的PHP程式設計師在程式設計中應該先遵循的準則。
  1.懶惰是金
  2.寫漂亮的程式碼
  3.追求程式的速度,而不是程式設計的速度
  一、懶惰是金
  做一個懶惰的程式設計師嗎?這個想法太奇怪了!因為這個世界上最忙碌的人可能就是電腦程式設計師了。但正是因為程式設計師太忙了,所以才應該在程式設計時學會偷懶。
  對一個程式設計師來說,懶惰的方法有兩種:其一,大膽使用現成的別人的程式碼,把這些程式碼融入到你自己的程式或專案中去。其二是編寫一些有用的程式碼建立一個函數庫,在將來編寫程式時可以順手拈來,省去了許多重複的勞動,自然就可以懶惰一點了。
  這兩種偷懶的方法都非常適合PHP程式設計師了。
  首先,PHP是自由開放的環境中誕生成長的語言。在世界各地,有成千上萬的程式設計師,他們一直在為PHP的完美而不斷奮鬥,他們也願意和別人分享自己的聰明才智和自己寫的程式碼。你每天都可以從一些PHP網站、郵件列表、新聞群組發現大量的優秀的程式碼。這樣說,我並不是鼓勵你整天等著讓別人為你編寫程式碼,但是你可以“站在偉人的肩膀上”,充分發揚“拿來主義”,聰明地應用別人的程式碼可以節省你大量時間。其次,在PHP中,你可以方便地建立自己的函數庫,這樣可以在你以後編寫程式時省去很多麻煩。
  下面筆者為大家介紹幾個通用的函數,這些函數有的來自網上的一些開放源代碼的項目,有的精選自郵件列表。如果你能把它們加入到你自己的函數庫中,遲早你將會發現自己受益無窮。
  1.通用資料庫處理函數
  及其它的CGI函數相比,PHP的優點之一是具有強大的資料庫處理能力。但是,在PHP中,對於不同的資料庫都使用一些特定的函數來專門處理,缺少通用的資料庫處理函數。這大大降低了程式碼的可移植性,也為初學程式設計的朋友帶來了許多不便。
  在網路上,許多程式設計師都透過封裝類別解決了這個問題。他們編寫了統一的函數用來處理任何流行的資料庫——不管是在Linux世界深受歡迎的Mysql還是在Windows平台上廣泛流行的SqlServer。就筆者個人來說,非常喜歡使用這些函數,因為可以直接使用一些簡單的諸如"query"、"next_record"之類的函數,而不需要考慮資料庫的連接、資料庫句柄這些複雜的東西,更不需要考慮使用的是何種資料庫。
  如果你需要這些函數,你可以透過造訪以下的幾個網址而得到:
  http://phplib.netuse.de/
  http://phpclasses.UpperDesign.com/browse.html /package/20
  http://phpdb.linuxbox.com/
  2.變數除錯函數
  PHP程式的除錯一直是一件令人頭痛的事,它既不像VB等高階語言那樣有整合的編譯偵錯環境,也不想Perl那樣可以在Linux或DOS環境下直接運作。其實,我們完全可以透過靈活地使用echo語句來完成對PHP的調試工作。
  下面的幾個函數可以讓你隨時查看程式中任何變數的類型及其值。
  function ss_array_as_string (&$array, $column = 0) {
  $str = "Array(
n";
){
  for ($i = 0; $i   $str .= "  = $var.==> ;
  $str .= ss_as_string($val, $column+1)."
  }
  for ($i = 00; $$$$$) ;
  $str .= "    ";
  }
  返回$str.)
  }
 .回
   if (empty($object->類別)) {
  return "$object";
  }
  else {
 🎜>n";
  while (list(,$var) =each($object->persistent_slots) )) {
  for ($i = 0; $i   $str .= "    "
  }
  全域$$var;
  $str .= ==>   return $str.);
  }
  }
  function ss_as_string (&$thing, $column = 0) {

  }
  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.")";
  }
  }
  需要的時候,程式中簡單地加入下方的程式碼即可檢視程式中所使用的變數(包含資料庫與物件)的型別與值:
  echo ss_as_string ($我的變數);
  使用下面的語句,我們可以直接檢視程式中所有變數的值:
  echo ss_as_string($GLOBALS);
  3.控制日誌資訊的函數
  調試PHP程式的另一個重要的方法是查看日誌資訊。來更多的便利。
  $ss_log_filename = /tmp/ss-log;
  $ss_log_levels = array(
  NONE => 0,
  錯誤 => 1,
  資訊 => 2,
   => 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-檔名;
  if ($ss_log_levels[$ss_log_level]   // 不顯示日誌資訊
  return false;
  }
  $fd = fopen($ss_log_filename, "a+");
  fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message."n");
  fclose($fd);
  回傳 true;
  }
  function ss_log_reset () {
  global $ss_log_filename;
  @unlink($ss_log_filename);
  }
  在上面的函數中,有四個日誌等級變數。程式中加入下列語句:
  ss_log_set_level(INFO);
那麼,執行PHP程式時,只有ERROR和INFO等級的LOG資訊才會被記錄並顯示出來,DEBUG等級的資訊則被忽略了。除此之外,我們還可以設定顯示的資訊內容,其語句如下:
  ss_log(ERROR, "testing level ERROR");
  ss_log(INFO, "testing level INFO");
ss_log(DEBUG, "testing level DEBUG");
  你也可以隨時使用下面的語句清空LOG資訊:
  ss_log_reset();
   ,我們需要一種可以測試程式碼運行時間的方法,從而來選擇最優的程式碼。下面的函數可以測試執行程式碼所需的時間:
  function ss_timing_start ($name = default) {
  global $ss_timing_start_times;
 🎜>  }
  function ss_timing_stop ($name = default) {
  global $ss_timing_stop_times;
 }
  function ss_timing_current ( $name = default) {
  global $ss_timing_start_times, $ss_timing_stop_times;
  if (!isset($  if (!isset ($ss_timing_stop_times[$name])) {
  $stop_time = explode(, microtime());
  }
  else {   }
  $current = $stop_time[1] - $ss_timing_start_times[$name][1];
  $current += $stop_time[0] yage [0] $ current;
  }
  現在可以輕鬆地檢查任何一段程式碼的執行時間了,甚至我們可以同時使用多個計時器,只需在使用上述的幾個函數時設定不同的參數作為計時器的名稱就可以了。
  5.調試和最佳化資料庫的操作
  對於資料庫來說,運作速度是至關重要的。儘管許多書籍和文章都講授了一些快速運行資料庫的方法,但是所有的方法都必須經過實踐的檢驗。下面我們將把PHPLib函數庫中的query()函數和上面介紹的幾個函數綜合起來寫成新的query()函數,和原先的函數相比,這個函數增加了運行時間的監測功能。
  function query($Query_String, $halt_on_error = 1) {
  $this->connect();
  ->Link_ID);
  ss_timing_stop();
  ss_log(INFO, ss_timing_current(). Secs - .$Query_String);
 o-this-Low mysql_errno();
  $this->Error = mysql_error();
  if ($halt_on_error && !$this->Query_ID) {
 );
  }
  return $this->Query_ID;
  }(未完待續)



http://www.bkjia.com/PHPjc/315878.html

www.bkjia.com

true

http: //www.bkjia.com/PHPjc/315878.html

TechArticle

PHP是一門高效的網路程式語言,由於它具有編寫靈活、運行快速等優點,迅速成為Web程式設計師的首選語言。前不久的一項權威調查表明,現在...

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中