PHP L-Aħjar Prattika: Parametri tat-Tip
Hemm il-prattiċi li nitgħallmu fl-iskola, dawk li nieħdu permezz tal-għażż, dawk li naddottaw bi drawwa, kemm jekk narawha jew billi nikkuppjaw u tippejstjaw b’mod sistematiku. Biż-żmien u l-esperjenza, jidher ċar li qed infittxu metodoloġiji u sintassi dejjem aktar ċari. Minkejja x-xejriet li huma distinti madwar kull lingwa, ħafna drabi nkunu kapaċi niddeterminaw billi naqraw il-kodiċi, liema mit-tim tagħna għandu tali sintassi F'C #, il-puristi jieħdu d-drawwa li jibdew l-interfaces kollha tagħhom b'"I" Per eżempju .
sommarju
PHP, sintassi ħielsa... ħielsa wisq?
Jien stess għandi diversi drawwiet li jippermettuli nibni l-kodiċi tiegħi b'mod regolari. Dan sabiex faċilment insib triqti, biex naħdem malajr, iżda wkoll biex niffaċilita l-debugging u l-qari tal-kodiċi tiegħi għall-kollegi tiegħi.
Ittajpja l-parametri tiegħu, għal xiex? U għaliex din hija prattika tajba?
Fil-PHP, is-sintassi hija ħielsa ħafna. Niġifieri ħieles ħafna mill-fatt li l-lingwa mhix verbose ħafna. Mingħajr ma nkun sostenitur tal-lingwi bħal Java pereżempju, naħseb li l-ittajpjar tal-parametri tiegħu jista 'biss jgħinna fix-xogħol tagħna.
Għaliex taħli ħin tikteb it-tip tad-dejta?
Tabilħaqq, imma ejja immedjatament inqabblu l-vantaġġi u l-iżvantaġġi.
Fl-iżvantaġġi, mingħajr ma nkun żminijiet ħżiena, se nsibha diffiċli niċċita argument ieħor minn dak li ktibt hawn fuq.
Fil-vantaġġi, nista 'nistqarr lista żgħira:
- Jgħinni nibni l-kodiċi tiegħi. Fil-prototip tiegħi (dikjarazzjoni tal-funzjoni tiegħi), naf li tali u tali argument għandu jkun araġġ ou int.
- Dan jippermettili niddibaggja aktar malajr. Jekk iddikjarajt li ridt argument tat-tip utent fil-metodu tiegħek, PHP se jistenna istanza ta 'Utent. Jew ipprova agħti araġġ jew kwalunkwe tip ieħor għajr dak stipulat, jikkawża li PHP jieqaf immedjatament. Ċertament, l-iżball jirriskja li jkun pjuttost "iebes", iżda l-bqija tal-iżvilupp tiegħek mhux probabbli li jkollu falliment.
- Il-kollegi tiegħi jħobbu jaqraw il-kodiċi tiegħi bħal ktieb. Tabilħaqq, meta nafu li l-metodu setItem(…) jieħu argument tat-tip Foo, jgħin. Le?
12funzjoni setItem($oġġett);funzjoni setItem(Foo $oġġett);
Ċertament, din il-lista fiha biss 3 punti, iżda x-xogħol tagħna jobbligana li dejjem inkunu fuq it-triq tal-gwerra u li dejjem tesplora toroq ġodda, nagħtik parir biex tipprova tara għalik innifsek.
Kwistjoni sospiża bit-tip mħallta
Tabilħaqq, irrid nammetti l-istess dgħjufija, it-tip mħallta. Bniedem orribbli u li għandu jiġi pprojbit. Għal dawk li jkunu kkodifikati f'C/C++, huwa bħal tiddikjara punter tal-istanza b'(vojt *).
Nagħtik parir kemm jista' jkun biex ma tużax dan it-tip u tillimita l-użu tiegħu. Eżempju?
Il-metodu setPoireau(imħallat $poireau) jieħu l-kurrat bħala parametri iżda peress li mhuwiex ittajpjat, tista' wkoll tagħtih siġill tat-trabi... Problematiku.
Jekk ridt iġiegħel li jkollok kurrat, taf x’għandek tagħmel, u ejja nammettu li għandek moħħ mibrum, u li tixtieq tkun tista’ tagħti l-ħaxix, nistedinkom tuża interface (jew klassi abstract ) u ddefinixxi l-metodu tiegħek bħal dan.
|
|
Naqbel li dan l-eżempju jista’ ma jkunx l-aqwa li hemm, iżda għandu l-mertu li jkun ċar.
konklużjoni
It-tajpjar mhuwiex obbligatorju, iżda jibqa' disponibbli għal kull min irid jaħdem b'mod ċar u nadif. Nirrakkomandaha bil-qawwa lilek.
Forsi se jkollna d-dritt, xi darba, li ttajpja r-ritorn ta’ metodu biex jgħinna fit-tfittxija tagħna għal semantika dejjem aħjar.