構(gòu)造函數(shù)的作用是什么?為了讓你更好的理解,我舉工廠的例子開(kāi)始講起:
推薦教程:PHP視頻教程
我們知道,在一個(gè)工廠里面,要生產(chǎn)同要求的產(chǎn)品,那么就需要CAD模具。如果引申到我們的PHP中,我們可以理解為類(lèi)就是CAD模具,決定了產(chǎn)品的形狀;而對(duì)象就是產(chǎn)品;要求(長(zhǎng)度、寬度、高度、半徑等等指標(biāo))就是類(lèi)中的類(lèi)的屬性。
當(dāng)我們要生產(chǎn)產(chǎn)品,首先我們要根據(jù)需求方明確該產(chǎn)品有哪些要求,比如是做一批長(zhǎng)方形的產(chǎn)品(產(chǎn)品a,產(chǎn)品b,產(chǎn)品c),我們的CAD模具(類(lèi)),要求是長(zhǎng)、寬、高指標(biāo)(類(lèi)屬性)。進(jìn)而需要的是產(chǎn)品a,b,c,長(zhǎng)、寬、高的各項(xiàng)指標(biāo)的具體參數(shù)(類(lèi)屬性參數(shù))。
假設(shè)你是工廠的技術(shù)員,你怎么操作CAD模具呢?
第一種方法:
class長(zhǎng)方形產(chǎn)品a模具: { private $長(zhǎng)=1.1m; private $寬=1.2m; private $高=1.5m; } $產(chǎn)品a=new class 長(zhǎng)方形產(chǎn)品a(); class 長(zhǎng)方形產(chǎn)品b模具: { private $長(zhǎng)=1.4m; private $寬=1.7m; private $高=1.8m; } $產(chǎn)品b=new class 長(zhǎng)方形產(chǎn)品b(); class 長(zhǎng)方形產(chǎn)品c模具: { private $長(zhǎng)=1.0m; private $寬=1.1m; private $高=0.9m; } $產(chǎn)品b=new class 長(zhǎng)方形產(chǎn)品c();
第二種方法:用構(gòu)造方法就是
class 長(zhǎng)方形產(chǎn)品模具類(lèi): { private $長(zhǎng); private $寬; private $高; public function __construct(參數(shù)1, 參數(shù)2, 參數(shù)3){ $this->長(zhǎng) =參數(shù)1; $this->寬 =參數(shù)2; $this->高= 參數(shù)3; } 實(shí)例化各產(chǎn)品對(duì)象的時(shí)候,我們只需要 $產(chǎn)品a=new class長(zhǎng)方形產(chǎn)品cad模具類(lèi)(1.1m,1.2m,1.5m); $產(chǎn)品b=new class長(zhǎng)方形產(chǎn)品cad模具類(lèi)(1.4m,1.7m1.8m); $產(chǎn)品c=new class長(zhǎng)方形產(chǎn)品cad模具類(lèi)(1.1m,1.0m1.9m); ....
如果是生產(chǎn)不規(guī)則形狀的產(chǎn)品,那么技術(shù)員要設(shè)定的cad模具(類(lèi))指標(biāo)(類(lèi)屬性)就會(huì)很多,如果該批產(chǎn)品大小種類(lèi)還很多的話(huà)(對(duì)象很多),需要設(shè)置很多的指標(biāo)參數(shù)(類(lèi)屬性參數(shù)),顯而易見(jiàn)后者第二種方法的工作效率會(huì)高很多。
也就是說(shuō)構(gòu)造方法__construct()實(shí)例化類(lèi)對(duì)象的時(shí)候有很大的優(yōu)勢(shì),一次建類(lèi),多次重復(fù)使用。在這里,我們也就明白了構(gòu)造方法的好處是其可以接受參數(shù),實(shí)例化對(duì)象時(shí),為不同的對(duì)象設(shè)置不同的屬性初始化值。