Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition
Op http://www.zend.com/php5/articles/engine2-php5-changes.php staat dat elke class eigen constantes heeft, wat dus inhoud dat een derived class ook eigen constantes kan hebben, terwijl zijn parent een constant heeft met dezelfde naam.
Kortom, het is geen bug, tis een feature?
Kortom, het is geen bug, tis een feature?
Verwijderd
Ik heb geen verstand van PHP, maar volgens mij rammelt je code aan alle kanten.
subclass is geen afgeleide van baseclass (of PHP moet een automagisch systeem hebben dat wanneer een class met 'sub' begint gezocht wordt naar een class die met 'base' begint om 'm van af te leiden), je creeert een instance $test, maar vraagt vervolgens BLAAT van de class zelf op, en niet van de instance?
Wat ik van PHP 5 begrijp is dat 't heel erg z'n best doet om OO te implementeren, maar 't helpt ook als de ontwikkelaar ook OO probeert te denken...
subclass is geen afgeleide van baseclass (of PHP moet een automagisch systeem hebben dat wanneer een class met 'sub' begint gezocht wordt naar een class die met 'base' begint om 'm van af te leiden), je creeert een instance $test, maar vraagt vervolgens BLAAT van de class zelf op, en niet van de instance?
Wat ik van PHP 5 begrijp is dat 't heel erg z'n best doet om OO te implementeren, maar 't helpt ook als de ontwikkelaar ook OO probeert te denken...
Je override geen constante, je creeert een andere constante met dezelfde naam in een andere namespace. Ik vind het eerder vaag dat hij bij $schaap een error geeft.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
ok bedankt voor de reacties.
het is dus geen fout maar gewoon normaal gedrag, dat wou ik even weten.
bij het feit dat php bij het $schaap geval een fout geeft heb ik een tweeledig gevoel. je mag namelijk wel het acceslevel aanpassen van een property (alleen zwakker), maar je mag niet de (initiele) waarde van de property aanpassen. dat is natuurlijk een beetje vaag.
aan de andere kant heeft deze "feature" (zo noem ik het maar even) ook wel wat. je kunt namelijk de property bij de (eerste) declaratie een initiele waarde opgeven, zodat je geen undefined properties hebt. vervolgens mag je in de declaratie wel het accesslevel aanpassen (in afgeleide klassen) maar niet de waarde. dit vind ik persoonlijk wel netter, omdat je hiermee een betere scheiding aanbrengt tussen interface en implementatie (niet dat php een duidelijk/danwel geen verschil kent tussen interface en implementatie bij het definieren van klassen, maar het gaat om het idee). je wordt zo gedwongen om de constructor te gebruiken om waardes te setten. aan de andere kant, php is al zo loose typed, dus waarom wel hierover moeilijk doen. daarnaast is het niet echt consistent om in het eerste geval wel toe te staan dat er in de property declaratie waardes toegekend mogen worden, en het vervolgens te verbieden.
het is dus geen fout maar gewoon normaal gedrag, dat wou ik even weten.
bij het feit dat php bij het $schaap geval een fout geeft heb ik een tweeledig gevoel. je mag namelijk wel het acceslevel aanpassen van een property (alleen zwakker), maar je mag niet de (initiele) waarde van de property aanpassen. dat is natuurlijk een beetje vaag.
aan de andere kant heeft deze "feature" (zo noem ik het maar even) ook wel wat. je kunt namelijk de property bij de (eerste) declaratie een initiele waarde opgeven, zodat je geen undefined properties hebt. vervolgens mag je in de declaratie wel het accesslevel aanpassen (in afgeleide klassen) maar niet de waarde. dit vind ik persoonlijk wel netter, omdat je hiermee een betere scheiding aanbrengt tussen interface en implementatie (niet dat php een duidelijk/danwel geen verschil kent tussen interface en implementatie bij het definieren van klassen, maar het gaat om het idee). je wordt zo gedwongen om de constructor te gebruiken om waardes te setten. aan de andere kant, php is al zo loose typed, dus waarom wel hierover moeilijk doen. daarnaast is het niet echt consistent om in het eerste geval wel toe te staan dat er in de property declaratie waardes toegekend mogen worden, en het vervolgens te verbieden.
Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition
Waarschijnlijk helpt het als je abstract voor je class baseclass zet.
Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!
Pagina: 1