ints en strings
Een nadeel noemt Koen zelf wat betreft het gebruik van strings, je zult hem moeten converteren voor je database. Aan de andere kant, nu moet je hem converteren voor je weergave. Als je het mij vraagt lood om oud ijzer.
Voordeel wat hij geeft betreft male/man vindt ik dan weer wel noemenswaardig in deze situatie.
Nou, het is vooral (zo ik er tegenaan kijk) dat je niet zelf de juiste waarde hoeft te verzinnen. Je kijkt gewoon bij de class constants welke opties je hebt. Je kunt zeg maar geen niet bestaande waarde invullen. Dat is op zich denk ik het grootste voordeel.
Daar heb je ook zeker een punt...
Wouter J op 03/03/2014 17:12:42:
>> Speciale reden voor?
Constants zijn 1 van de meest misbruikte dingen in PHP. Als je constants wil gebruiken moet je iets van Gender::MALE en Gender::FEMALE hebben en dan zou gender een Value Object worden, wat in dit geval totaal overdone is.
Constants zijn 1 van de meest misbruikte dingen in PHP. Als je constants wil gebruiken moet je iets van Gender::MALE en Gender::FEMALE hebben en dan zou gender een Value Object worden, wat in dit geval totaal overdone is.
Als je een object met constants wil gebruiken, kun je dan eigenlijk in de ontvangende functie afdwingen dat de juiste class wordt gebruikt om de constant values op te halen?
Voorbeeldje:
Code (php)
Kun je nu in de setGender method afdwingen/typehinten of controleren dat $gender een waarde moet zijn uit de Gender class? Of kun je dat alleen in je commentaar aangeven?
Gewijzigd op 04/03/2014 00:01:11 door Ozzie PHP
doen?
http://www.php.net/manual/en/language.oop5.typehinting.php
Gewijzigd op 04/03/2014 18:27:18 door Reshad F
Het zou kunnen maar dan moet ik er een class aan meegeven.
Dan krijg je dus zoiets:
Is dat niet een vreemde manier?
Reshad, wil blijkbaar een Value Object gebruiken: new Gender('male') Deze valideert het gender, houdt het vast en heeft bijv. een __toString method. Dit is goed als je value andere waardes kan aannemen en ook validatie etc. nodig heeft. Hier vind ik het een beetje teveel van het goede.
Maar stel dat je het zo doet als in 2 berichten hierboven van mij, dus dat je een Gender object gebruikt met constants, kun je dan in de setGender method controleren/typehinten of de constants afkomstig zijn van de Gender class?
Een klasse met alleen constants is compleet nutteloos naar mijn mening...