Ik probeer het volgende te bewerkstelligen:
Oftewel: de classe Obj wordt geinstantieerd, waarbij de constructor een nieuwe instantie van het object A aanmaakt. Vervolgens wil ik via de functie getA() dit object terugkrijgen, zodat ik er een functie op aan kan roepen.
Echter, de syntax op regel 31 klopt niet. Daarbij vraag ik me meteen af hoe het wel moet, of dat het misschien niet eens kan.
De code:
De vraag is daarom of (en zoja hoe) je een functie kunt aanroepen op de referentie van een andere functie. Zonder deze dus eerst in een variabele op te hoeven slaan.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| <? class A { function A() { } function doPrint() { print "Hello world"; } } class Obj { var $a; function Obj() { $this->a =& new A(); } function &getA() { return $this->a; } } $o =& new Obj(); $o->getA()->doPrint(); ?> |
Oftewel: de classe Obj wordt geinstantieerd, waarbij de constructor een nieuwe instantie van het object A aanmaakt. Vervolgens wil ik via de functie getA() dit object terugkrijgen, zodat ik er een functie op aan kan roepen.
Echter, de syntax op regel 31 klopt niet. Daarbij vraag ik me meteen af hoe het wel moet, of dat het misschien niet eens kan.
De code:
PHP:
werkt zoals je zou verwachten. Echter, dit kost weer een extra regel code en een toewijzing (hoewel dat intern ook vast wel gebeurd).1
2
3
| $o =& new Obj(); $a =& $o->getA(); $a->doPrint(); |
De vraag is daarom of (en zoja hoe) je een functie kunt aanroepen op de referentie van een andere functie. Zonder deze dus eerst in een variabele op te hoeven slaan.