Ik ben bezig met een kleine data access layer in PHP5 en ik stuit op enkele problemen. Deze komen naar voren bij het gebruik van return by reference bij een functie. Ik geef in de layer functionaliteit voor het ophalen van een object aan de hand van zijn ID of iets dergelijks. Ik probeer ook iets aan caching te doen zodat het object ook maar echt 1 keer opgehaalt wordt. Nu heb ik alleen een probleem met het returnen van een waarde als het niet gelukt is. Dus als het object niet opgehaald is. Ik return dan false, logisch dacht ik, maar het blijkt dat php dat niet leuk vind omdat deze niet by reference gereturned kan worden:
Dit slikt php dus wel, maar er wordt wel een warning gegeneert die ik zeker niet wil hebben. Ik kan wel een exception gaan throwen oid, maar dat is erg smerig. Wat zijn de mogelijkheden?
code:
1
2
3
4
5
6
7
8
| function &getObject($params) { // vind object if ( gevonden ) return $object; return false; } |
Dit slikt php dus wel, maar er wordt wel een warning gegeneert die ik zeker niet wil hebben. Ik kan wel een exception gaan throwen oid, maar dat is erg smerig. Wat zijn de mogelijkheden?