搜尋
首頁後端開發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電子郵件:分步發送指南May 09, 2025 am 12:14 AM

phpisusedforsendendemailsduetoitsignegrationwithservermailservicesand andexternalsmtpproviders,自動化intifications andMarketingCampaigns.1)設置設置yourphpenvenvironnvironnvironmentwithaweberswithawebserverserververandphp,確保themailfunctionisenabled.2)useabasicscruct

如何通過PHP發送電子郵件:示例和代碼如何通過PHP發送電子郵件:示例和代碼May 09, 2025 am 12:13 AM

發送電子郵件的最佳方法是使用PHPMailer庫。 1)使用mail()函數簡單但不可靠,可能導致郵件進入垃圾郵件或無法送達。 2)PHPMailer提供更好的控制和可靠性,支持HTML郵件、附件和SMTP認證。 3)確保正確配置SMTP設置並使用加密(如STARTTLS或SSL/TLS)以增強安全性。 4)對於大量郵件,考慮使用郵件隊列系統來優化性能。

高級PHP電子郵件:自定義標題和功能高級PHP電子郵件:自定義標題和功能May 09, 2025 am 12:13 AM

CustomHeadersheadersandAdvancedFeaturesInphpeMailenHanceFunctionalityAndreliability.1)CustomHeadersheadersheadersaddmetadatatatatataatafortrackingandCategorization.2)htmlemailsallowformattingandttinganditive.3)attachmentscanmentscanmentscanbesmentscanbestmentscanbesentscanbesentingslibrarieslibrarieslibrariesliblarikelikephpmailer.4)smtppapapairatienticationaltication enterticationallimpr

使用PHP和SMTP發送電子郵件的指南使用PHP和SMTP發送電子郵件的指南May 09, 2025 am 12:06 AM

使用PHP和SMTP發送郵件可以通過PHPMailer庫實現。 1)安裝並配置PHPMailer,2)設置SMTP服務器細節,3)定義郵件內容,4)發送郵件並處理錯誤。使用此方法可以確保郵件的可靠性和安全性。

使用PHP發送電子郵件的最佳方法是什麼?使用PHP發送電子郵件的最佳方法是什麼?May 08, 2025 am 12:21 AM

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

PHP中依賴注入的最佳實踐PHP中依賴注入的最佳實踐May 08, 2025 am 12:21 AM

使用依賴注入(DI)的原因是它促進了代碼的松耦合、可測試性和可維護性。 1)使用構造函數注入依賴,2)避免使用服務定位器,3)利用依賴注入容器管理依賴,4)通過注入依賴提高測試性,5)避免過度注入依賴,6)考慮DI對性能的影響。

PHP性能調整技巧和技巧PHP性能調整技巧和技巧May 08, 2025 am 12:20 AM

phpperformancetuningiscialbecapeitenhancesspeedandeffice,whatevitalforwebapplications.1)cachingwithapcureduccureducesdatabaseloadprovesrovessetimes.2)優化

PHP電子郵件安全性:發送電子郵件的最佳實踐PHP電子郵件安全性:發送電子郵件的最佳實踐May 08, 2025 am 12:16 AM

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。