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