Stel je voor je hebt een klasse:
Natuurlijk zou je door het woordje 'new' altijd een klasse terug moeten krijgen, alleen hierdoor kan je dus geen enkele voorwaarde meer in de constructor stoppen. Dit lijkt me wel een rare situatie. Het is toch best mogelijk dat de code in de constructor mag bepalen of het aanmaken van een klasse mogelijk is? Of past dit niet binnen echte OO software, het is voor mij een raadsel waarom ze dit hebben aangepast eigenlijk, iemand een idee?
PHP:
Met deze klasse was het in PHP4 zo dat je dat dan kan gaan checken:1
2
3
4
5
6
7
8
9
10
| // Versie 4 & 5 class mijnKlasse { function __constructor($ID) { if ($ID == 1) { return true; }else{ return false; } } } |
PHP:
Echter bij PHP5 krijg je geen false terug maar een klasse! (object) Maar dit zou dus betekenen dat je altijd via een externe functie dat moet gaan doen (dus een aparte functie die een klasse retourneerd of false). Nu vraag ik me af of dit wel de bedoeling is en of er misschien een oplossing is.1
2
3
4
| // Versie 4 & 5 if ($k = new mijnKlasse(2)) { // nu krijg ik dus false terug! } |
Natuurlijk zou je door het woordje 'new' altijd een klasse terug moeten krijgen, alleen hierdoor kan je dus geen enkele voorwaarde meer in de constructor stoppen. Dit lijkt me wel een rare situatie. Het is toch best mogelijk dat de code in de constructor mag bepalen of het aanmaken van een klasse mogelijk is? Of past dit niet binnen echte OO software, het is voor mij een raadsel waarom ze dit hebben aangepast eigenlijk, iemand een idee?
Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!