Yuav ua li cas sau ntawv Advanced Object-Oriented Programming hauv PHP?

OOP PHP

OOP PHP

Txheej txheem cej luam: Tsis Oriented programming (OOPs) yog ib tug txheej txheem tseem ceeb tsis hais programming lus peb siv. Thiab li, PHP tsis muaj kev zam hauv no.

Nyob rau cov tshooj no peb yuav tham txog kev tsim txawm kwv oriented cov kev pab cuam hauv PHP.

Taw qhia: PHP yog ib tug neeg rau zaub mov ces scripting lus siv los tsim cov nplooj ntawv Web site. Nyob rau lub sij hawm tsis ntev los no PHP yog qhov nrov vim nws simplicity. PHP chaws yuav muab tag nrho cov HTML code. Thaum cov PHP chaws tseg, tus neeg rau zaub mov hauv web xa cov ntaub ntawv kawm resulting rau daim HTML los yog cov duab uas tau muab txhais los ntawm qhov browser. Peb yeej paub tias lub hwj huam thiab qhov tseem ceeb ntawm kwv oriented programming los yog OOPs. Qhov no nws yog ib tug txheej txheem uas lug siv lub nplaj programming lus.

Hom OOPs tswvyim siv PHP:

Peb tham txog tej qho kwv oriented ntsiab lus uas siv hauv PHP:

  • Ncaus – Ncaus yog tseem ceeb taub kwv oriented programming siv heev tshaj lus programming. Ncaus raws li tus cai hais txog niam txiv thiab tus me nyuam chav kawm ntawv. Hauv PHP peb cuag ncaus los ntawm extending cov chav kawm ntawv. Extending hoob kawm ntawm tus me nyuam chav kawm ntawv inherits cov khoom rau cov chav kawm ntawv uas tsis yog niam txiv thiab ntxiv thiab peb yuav muaj tau ob peb lub zog ntxiv. Peb xav txog cov lus hauv qab no coj mus kuaj chaws –

Qhia 1 – Kev cai qauv qhia ncaus

[Chaws]

kawm ua hauj lwm {

pej xeem $firstName = “”;

pej xeem $lastName = “”;

pej xeem $eCode = “”;

pej xeem $dept = “”;

 

kev ua pej xeem dailyCommonTask() {

// Chaws li niaj zaus

}

}

hoob Accountant extends cov neeg ua hauj lwm {

kev ua pej xeem processMonthlySalary($eCode) {

// Txoj kev ntxuav cov nyiaj hli

}

}

[/Chaws]

Nyob rau hauv qhov chaws snippet saum toj no peb pom tias cov chav kawm ntawv Accountant no extending cov chav kawm ntawv uas tsis yog neeg ua hauj lwm. Tus accountant yog ib tug neeg ua hauj lwm ua ntej, li ntawd, nws tej lub hom phiaj cov hauj lwm uas niaj hnub nrog lwm cov neeg ua hauj lwm ua. Tib lub sijhawm, Nws yog ib lub Accountant txoj hauj lwm rau ntaub ntawv cov nyiaj hli ntawm lwm cov neeg ua hauj lwm.

  • Pej xeem, Kheej thiab tiv thaiv – Xws li tom yam oriented lus, PHP tseem muaj lub tswvyim ntawm pej xeem, Ntiav thiab Protected ntaub modifiers. Hauv qab no hais yog qhov feature no peb –
    • Pej xeem – Uas muaj rau pej xeem saib cov code no pom thiab yuav muab hloov raws kev cai nyob txhua qhov chaw los ntawm.
    • Lwm yam – Uas muaj lwm yam ntawv cov code no pom thiab tau muab hloov los ntawm nyob rau hauv cov chav kawm ntawv xwb.
    • Tiv thaiv – Uas tiv thaiv ntaub qhov code no pom thiab tau muab hloov los ntawm tib hoob kawm los yog ib yam ntawm cov me nyuam kawm ntawv.
  • Overloading – Overloading feature enables peb muaj ob txoj kev uas muaj tib lub npe tiam sis muaj tsis txawv. Peb pom cov nram qab no chaws snippet-

Qhia 2 – Kev cai qauv qhia overloading

[Chaws]

hoob Accountant extends cov neeg ua hauj lwm {

kev ua pej xeem processMonthlySalary($eCode) {

// Txoj kev ntxuav cov nyiaj hli

}

kev ua pej xeem processMonthlySalary($eCode, $variablePayFlag, $variablePercentage) {

Yog hais tias($variablePayFlag) {

ncha “Thov ntaub ntawv cov nyiaj hli uas them kuj tsis paub meej “;

} ntxiv {

ncha ” Thov ntaub ntawv cov nyiaj hli tsis them kuj tsis paub meej “;

}

}

}

[/Chaws]

Nyob rau hauv cov cai hais los saum toj, peb muaj ob txoj kev uas muaj lub npe qub – 'processMonthlySalary'. Nyob rau hauv ib lub koom haum, tsis yog txhua tus neeg ua haujlwm yuav muaj cov kuj sib txawv thiab tivthaiv them rau lawv cov nyiaj hli. Li no tus accountant yuav tau ntaub ntawv cov nyiaj hli uas siv ob tug sib txawv le caag –

  • Muaj nyiaj kuj tsis paub meej
  • Tsis muaj nyiaj kuj tsis paub meej

Thaum ntxuav lub nyiaj hli uas kuj sib txawv thiab them, tus accountant yuav tsum qhia qhov no rau tus nqi ntawm cov nyiaj kuj tsis paub meej tivthaiv.

Nyob rau hauv qhov piv txwv li hais los saum toj, peb tau piav lub tswvyim ntawm txoj kev overloading kev. Tab sis thaum sij yuav siv, Peb xav tau ib tug ua haujlwm PHP hu ua func_get_args () lis ntau yam txoj kev kos npe (muaj tib txoj kev lub npe) muaj ntau cov lus. Tus func_get_args () yog siv nyob rau hauv ib lim PHP uas tuas tag nrho cov nqe lus (raws li ib qho array) dhau mus rau nws. Thiaj muaj nuj nqi rau tib yuav yog hu ua nrog cov lus sib txawv.

Piv txwv, peb yuav ua kom ib tug hu ua myTestFunction () peb thiaj xav kom nws siv li muaj nuj nqi overloaded.

[chaws]

myTestFunction muaj nuj nqi()

{

print_r(func_get_args());

}

[/chaws]

Tam sim no, Yog hais lus ntau yam yuav muaj nuj nqi no yuav yog li nram qab no. Tus func_get_args () yuav tau tag nrho cov nqe lus uas yuav siv as per yuav tsum tau. Hu thawj zaug xeem lus cav, hu ob kis tau ib los lus cam thiab lub thib peb ib tug yuav xa ob nqe lus. Ces cov lub muaj nuj nqi no kuj ua ib qho kev ua overloaded.

[chaws]

myTestFunction ();

myTestFunction (“Nyob zoo”);

myTestFunction (“Nyob zoo”,”Tus hlub”);

[/chaws]

Muaj tseem yog ib txoj kev tswj hauv PHP overloading siv __call() thiab __callStatic() txoj kev.

Piv txwv, txoj cai snippet hauv qab no qhia tau hais tias tus nqe lus tso rau hauv nws nrog rau tus qauv npe. Ntawm no $name yog heev nab rhiab. Rau cov zis yuav sau cov hom lub npe thiab cov nqe lus tso rau hauv nws.

[chaws]

kev ua pej xeem __call($lub npe, $cov lus)

{

ncha “Peb yuav hu kwv cov ntsiab lus teb ' $name’ ”

. implode(‘, ‘, $cov lus). “\n”;

}

__callStatic ua kom pej xeem zoo li qub($lub npe, $cov lus)

{

ncha “Peb yuav hu rau hauv cov ntsiab lus teb zoo li qub ' $name’ ”

. implode(‘, ‘, $cov lus). “\n”;

}

[/chaws]

  • Accessors thiab Mutators- Feem ntau hu ua getters thiab setters, Accessors thiab Mutators lug siv txhua lus programming. Accessors los yog getters muaj zog uas yuav siv los rov qab los yog tau txais tus nqi ntawm cov hoob kawm theem zog. Mutators los yog setters muaj zog uas yog siv los teev los yuav hloov tau tus nqi ntawm ib hoob kawm kuj sib txawv thiab. Cov hoob yuav siv los hloov cov ntaub ntawv muaj ib txoj kev ntawm ib txheej mus rau lwm. Peb saib cov piv txwv hauv qab no –

Qhia 3 – Kev cai coj rau Accessors thiab Mutators

[Chaws]

kawm ua hauj lwm {

pej xeem $firstName = “”;

pej xeem $lastName = “”;

pej xeem $eCode = “”;

pej xeem $dept = “”;

kev ua pej xeem getfirstName() {

rov qab $this->firstName();

}

kev ua pej xeem setfirstName($firstName) {

$no->firstName = $firstName;

}

kev ua pej xeem getlastName() {

rov qab $this->lastName();

}

kev ua pej xeem setlastName($lastName) {

$no->lastName = $lastName;

}

kev ua pej xeem getECode() {

rov qab $this->eCode();

}

kev ua pej xeem setECode($eCode) {

$no->eCode = $eCode;

}

kev ua pej xeem getDept() {

rov qab $this->Dept();

}

kev ua pej xeem setDept($Dept) {

$no->Dept = $dept;

}

}

[/Chaws]

Cov hom kev kawm no yuav pab tau heev thaum peb yuav tsum hloov cov neeg ua hauj lwm tas kwv ntawm ib txheej mus rau lwm.

  • Static – Siv lo lus zoo li qub rau cov tseem ceeb rau kuj sib txawv thiab thiab hom yog ib hom siv hauv kwv oriented programming. Static txhais tau hais tias kuj sib txawv thiab cov cov qauv yog muaj ib lom ntawm cov chav kawm ntawv. Txoj kev zoo li qub los yog tus nqi yog siv tsis tau txoj kev kom lom ntawm cov chav kawm ntawv. qhov tseeb, lub zog zoo li qub yog tsis yog puas siv tau ntawm cov kev lom ntawm cov chav kawm ntawv. Thaum tsim tau txoj kev zoo li qub nws yuav tsum tau noj xyuas tias cov $this kuj sib txawv thiab txwv tsis pub nyob rau hauv ib txoj kev zoo li qub. Peb saib cov piv txwv hauv qab no –

Qhia 4 – Coj kev cai rau lo lus tseem ceeb zoo li qub thiab txoj kev

[Chaws]

hoob kawm StaticSample {

pej xeem zoo li qub $my_static = 'Qauv zoo li qub kuj sib txawv thiab';

kev ua pej xeem staticValue() {

rov qab mus Court::$my_static;

}

aStaticMethod ua kom pej xeem zoo li qub() {

ncha “Qhov no yog hais nyob zoo los ntawm txoj kev zoo li qub”;

}

}

hoob StaticShow extends StaticSample {

kev ua pej xeem checkStatic() {

rov qab mus yuav txiv::$my_static;

}

kev ua pej xeem checkStaticMethod() {

rov qab mus yuav txiv::$aStaticMethod;

}

}

[/Chaws]

  • Kawm paub daws teeb – Hauv PHP, cov nta ob oriented paj nruas programming siv heev heev. Paub daws teeb hoob uas tsis tau muaj instantiated theej lawv tau muab pub. Cov chav kawm ntawv uas inherits muaj ib hoob kawm paub daws teeb yuav hais tau lwm hoob kawm paub daws teeb. PHP peb yuav tsim tau ib cov hoob kawm paub daws teeb uas siv tau cov lo lus tseem ceeb-'paub daws teeb'. Peb pom cov nram qab no chaws snippet-

Qhia 5 – Saj txoj kev kawm paub daws teeb

[Chaws]

kawm paub daws teeb testParentAbstract {

kev ua pej xeem myWrittenFunction() {

// cev koj funciton

}

}

hoob testChildAbstract extends testParentAbstract {

kev ua pej xeem myWrittenFunctioninChild() {

// lub cev ntawm koj muaj nuj nqi

}

}

[/Chaws]

Nyob rau hauv qhov piv txwv li hais los saum toj, peb muaj peev xwm tsim thaj ntawm cov me nyuam kawm ntawv – testChildAbstract, tab sis peb tsis tau ua cov kev lom ntawm tus niam/txiv ntawd kawm – testParentAbstract. Thaum peb pom tias tus me nyuam kawm ntawv no extending cov chav kawm ntawv uas tsis yog niam txiv, peb yuav siv cov cuab yeej ntawm cov chav kawm ntawv uas tsis yog niam txiv nyob rau hauv tus me nyuam kawm ntawv. Peb yuav tau siv ib txoj kev paub daws teeb rau peb tus me nyuam kawm as per peb tau.

  • Interface – Hauv kwv oriented programming, Interface yog ib phau ntawm lub ntsiab lus ib txheej kev nyob rau cov hoob. Uas yog ib tug interface, peb yuam kom cov hoob kawm kom ua raws li cov hau kev sau tseg nyob hauv lub interface. Hauv PHP, interface txhais zoo ib yam li lwm yam lus. Ua ntej peb yuav txhais tau cov interface siv tau cov lo lus tseem ceeb-'interface'. Thaum uas siv lub tswv yim peb nyuam qhuav yuav tau pav rau lo lus tseem ceeb 'qiv' nyob rau implementing.

Qhia 6 – Kev cai coj rau Interface

[Chaws]

interface myIface {

kev ua pej xeem myFunction($lub npe);

}

hoob myImpl implements myIface {

kev ua pej xeem myFunction($lub npe) {

// lub cev muaj nuj nqi

}

}

[/Chaws]

Txoj kev: PHP muaj emerged li ib yam ntawm cov lus nrov tshaj plaws rau txoj kev loj hlob thov web. Muaj tau enhanced nrog txawm nta txhawb ntau yaam ntawm programming. Tsis yog qhov tseem ceeb tshaj plaws yuav to taub thiab siv oriented nta. Nyob rau peb sab laj peb muaj kev pab nws hauv lus.
Peb cia xaus peb sib tham nyob rau hauv daim ntawv uas cia nyias qhov hauv qab no –

  • OOP yog ib tug txheej txheem uas yog siv yuav luag txhua hom lus programming.
  • Thaum peb muaj tag nrho cov siv feem ntau kwv oriented PHP programming cov ntsiab lus raws li hauv qab no –
    • Ncaus
    • Overloading
    • Accessors & Mutators
    • Pej xeem, Lwm yam, Kev tiv thaiv, Static
    • Kawm paub daws teeb thiab Interfaces

 

 

 

 

Tagged: ,
============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share