原文地址:PHP設計模式(一):基礎編程模式php
俗話說,「PHP是世界上最好的語言」,由於PHP什麼都能幹。可是在PHP編程中,你是否會遇到這樣的困惑:明明是相同的需求,可是以前寫的代碼卻並不能重用,稍微修改不知足需求,大改又會讓頁面變樣。
是的,因爲PHP什麼都能幹,可是高度靈活性下降了代碼的結構性。雖然能夠利用三方框架來解決問題,但問題的根本在於缺少設計模式。
本系列文章將由淺入深的介紹各類設計模式。算法
面向對象編程,Object-Oriented Programming(OOP)做爲最基本的設計模式並非什麼新鮮的話題,可是大部分新手的PHP編程都是在寫流水帳,各類拼接字符串,因此這裏仍是要提一下。
Object-Oriented Programming的概念這裏就不說了,畢竟不少人都明白,可是如何在PHP中使用?
假設你須要在頁面上顯示不一樣的用戶類型,如電腦用戶、手機用戶等,那麼你能夠將「顯示」這件事抽象爲一個類,如:編程
<?php class ShowAgent { private $agent; public function __construct() { $this->agent = $_SERVER['HTTP_USER_AGENT']; echo $this->agent; } } $showAgent = new ShowAgent(); ?>
在不少PHP默認環境中,調試功能是關閉的。打開調試功能又須要配置php.ini文件,其實有一個簡單的方法:設計模式
<?php ini_set("display_errors", "1"); ERROR_REPORTING(E_ALL); ?>
將這段代碼加入到你的代碼中,甚至能夠require或者include進去,方便調試。框架
這裏列出流水帳編程,並非讓你學習,而是指出何種編程不推薦使用:學習
<?php $total = "Total number is "; $number = "6"; $totalNumber = $total.$number; echo $totalNumber; ?>
這段代碼並無錯,可是之後再也沒法重用了,對吧?每次遇到相同問題,你都須要反覆拼接。ui
面向過程編程曾經很流行,缺點也是沒法維護,例如:this
<?php function showTotal($total, $number) { $totalNumber = $total.$number; echo $totalNumber; } showTotal("Total number is", "6"); ?>
這段代碼一樣沒有錯,可是時間久了,因爲缺少類的概念,showTotal在各類應用場景缺少靈活性,你仍是須要重寫代碼。設計
轉變編程的思惟須要花費的時間是很長的,可是記住:算法提升程序運行的速度,而設計模式提升編程的速度。調試