php面向對象很難,php面向過程還是對象

本文目錄一覽:

php面向對象的概念理解.???

我覺得沒必要去深究他的意思。

按我的理解,面向對象編程,主要是將我們實際生活中的對象經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個對象。這樣使得程序更容易結構化、抽象起來更方便。

面向對象技術最初是從面向對象的程序設計開始的,

面向對象編程並不困難

它的出現以60年代simula語言為標誌。80年代中後期,面向對象程序設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發問題。這就是九十年代以microsoft

visual系列oop軟體的流行的背景。

傳統的結構化分析與設計開發方法是一個線性過程,因此,傳統的結構化分析與設計方法要求現實系統的業務管理規範,處理數據齊全,用戶能全面完整地其業務需求。

傳統的軟體結構和設計方法難以適應軟體生產自動化的要求,因為它以過程為中心進行功能組合,軟體的擴充和復用能力很差。

對象是對現實世界實體的模擬,因面能更容易地理解需求,即使用戶和分析者之間具有不同的教育背景和工作特點,也可很好地溝通。

區別面向對象的開發和傳統過程的開發的要素有:對象識別和抽象、封裝、多態性和繼承。

對象(object)是一個現實實體的抽象,由現實實體的過程或信息牲來定義。一個對象可被認為是一個把數據(屬性)和程序(方法)封裝在一起的實體,這個程序產生該對象的動作或對它接受到的外界信號的反應。這些對象操作有時稱為方法。對象是個動態的概念,其中的屬性反映了對象當前的狀態。

類(class)用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。

由上分析不難看出,儘管oop技術更看中用戶的對象模型,但其目的都是以編程為目的的,而不是以用戶的信息為中心的,總想把用戶的信息納入到某個用戶不感興趣的「程序對象」中。

如何更好的學習PHP的面向對象

我覺得首先「是面向對象」的知識要先有一定的了解,比如基本的封裝,繼承,多態;其次是對php的那套魔術字,魔術方法要有一定的了解。在學習玩這些之後,可以試著實現一些設計模式的實例。最後有能力的話可以去嘗試看看php的源代碼。

關於php面向對象的問題,求對框架原理了解的大神。

自己設計框架學習意義遠大於實用意義,設計的過程中可能會浪費你不少時間,而且你可能以後永遠不會(99%)用到自己設計的框架,但是對你深入了解PHP還是很有幫助的。

(我自己也有在設計一個框架,如有興趣,可以發給你一起研究)

大部分PHP MVC框架中心思想都是一樣的:

首先要單文件入口(index.php),就是所有的訪問都通過一個文件來控制,這樣就能控制流程了。要實現這個功能就需要apache或者nginx的設置來配合了。以apache為例,最經典的.htacess:

IfModule mod_rewrite.c

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ index.php?_url=$1 [QSA,L]

/IfModule

此文件的作用就是如果如果訪問的文件或者文件夾存在的話就直接調用文件(用來處理訪問/public/css, /public/js之類的請求),不然的話就將請求轉發給index.php。此時index.php可以調用$_GET[‘_url’] 來獲得請求。

#一般框架遵循的規則是:[地址]/[控制器名字]/[方法名字]/[參數/參數]

#請求: localhost/test/helloworld/china/shanghai

#在index.php里就可以訪問$_GET[‘_url’]來獲得字元串:/test/helloworld/china/shanghai

然後將字元串explode()成array,根據默認規則獲得以下信息(如果願意可以自己寫一個路由而不用默認方法解析路徑)

控制器:test

方法:helloworld

參數:china, shanghai

先在test.php中:

class test

{

    public function helloworld($country, $city)

    {

        echo ‘Hello, I am from’, $country, $city;

    }

}

然後在index.php中:

#這裡可以自己定義一個__autoload方法來讓PHP自行require_once() class文件,就不用自己一個一個include()了。

#初始化一個控制器實例:

$test = new test();

#調用控制器中的方法,並遞交參數

#請查閱PHP函數call_user_func_array()的使用方法

call_user_func_array( array($test, ‘helloworld’),  array(‘china’,’shanghai’) );

這樣就完成了一個簡單的MVC框架,剩下的就是繼續完善他,你可能需要學習以下知識:

PHP __autoload()的設計和命名空間(namespace)的設計

各種軟體設計模式:singleton, dependency injection, lazy loading

OOP(面向對象編程)PHP類的繼承模式(extends class), PHP介面(implements interface)

PHP資料庫操作類: mysqli類, pdo類

HTTP請求,header中的各種參數設置

Web Programming的安全事項, 如xss防護

《代碼簡潔之道》,《PHP Zend Coding Style》

希望能幫助到你!

大家是如何理解PHP編程中的「面向對象」呢?

你的理解很形象了, PHP的面向對象功能很弱的, 並不是完全的面向對象的。 你可以理解PHP中的類是帶屬性和方法的結構。 類定義只是定義,類實例才是真正的實現。

php面向對象重要嗎

有的項目需要,現在很多開源項目都是MVC 面向對象模式的,繼承關係好多的,我們現在做二次開發,繼承關係最多8層!~

原創文章,作者:DSSCW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/324694.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DSSCW的頭像DSSCW
上一篇 2025-01-13 13:23
下一篇 2025-01-13 13:23

相關推薦

發表回復

登錄後才能評論