首頁 後端開發 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

熱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

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP:處理數據庫和服務器端邏輯 PHP:處理數據庫和服務器端邏輯 Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

PHP的目的:構建動態網站 PHP的目的:構建動態網站 Apr 15, 2025 am 12:18 AM

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

See all articles