Nu ik alle enig etijd bezig ben met klasses in PHP valt mij op dat klasses alleen maar volledig worden geparsed en gecheckt wanneer dat nodig is.
Wanneer ik dus een class include maar ik gebruik hem niet dan wordt ie alleen maar op syntax gecontroleerd. Klein voorbeeldje.
Nou je ziet dat in functie b een aanroep word gedaan naar een niet bestaande functie getIets(). Je zou verwachten dat als je deze code in een bestand zet en vervolgend die code oproept, dat ie dan een foutmelding geeft. Helaas niet. Dit vind ie gewoon goed !
Waneer je echter de volgede code toevoegd :
Dam krijg je pas de foutmelding.
Heb hetzelde gedrag geconstateerd bij if constucties, etc.
Dat PHP dat doet is natuurlijk een goede zaak, parsen en checken wat niet nodig is is natuurlijk onzin.
Doch kan dit heel erg irritant zijn bij het maken van klasses, aangezien je anders allemaal testcases moet maken die alles afvangt.
En hier de vraag :
Kun je er binnen PHP voor zorgen dat alle code geparsed en gecheckt wordt ?
Wanneer ik dus een class include maar ik gebruik hem niet dan wordt ie alleen maar op syntax gecontroleerd. Klein voorbeeldje.
PHP:
1
2
3
4
5
6
7
8
| <?class A{ function A(){ } function b(){ return getIets(); } }?> |
Nou je ziet dat in functie b een aanroep word gedaan naar een niet bestaande functie getIets(). Je zou verwachten dat als je deze code in een bestand zet en vervolgend die code oproept, dat ie dan een foutmelding geeft. Helaas niet. Dit vind ie gewoon goed !
Waneer je echter de volgede code toevoegd :
PHP:
1
2
| <?$a = new A(); $a -> b()?> |
Dam krijg je pas de foutmelding.
Heb hetzelde gedrag geconstateerd bij if constucties, etc.
Dat PHP dat doet is natuurlijk een goede zaak, parsen en checken wat niet nodig is is natuurlijk onzin.
Doch kan dit heel erg irritant zijn bij het maken van klasses, aangezien je anders allemaal testcases moet maken die alles afvangt.
En hier de vraag :
Kun je er binnen PHP voor zorgen dat alle code geparsed en gecheckt wordt ?