Voor een project móet ik de onderstaande opzet gebruiken:

En de sterk versimpelde aanroep:
Ik ben nu echter al twee dagen on and off aan het prutsen hoe ik dit voor elkaar krijg zonder een circular reference te maken in de twee subclasses mbv. $parent.
$this->parent werkt niet, omdat de 'child' classes de baseClass niet extenden (ze extenden al een andere class namelijk). In principe kan de baseClass weggedacht worden; en dan ben ik op zoek naar een manier om de andere classes in de "myArray" aan te spreken.
Het zou mooi zijn als ik in de subClasses dit zou kunnen doen (psuedo)
... dit werkt uiteraard niet. Iemand een idee?
Ik had wel een oplossing gevonden; maar ik weet niet in hoeverre deze oplossing 'netjes' is, en ik wil graag buiten het noemen van de baseClass om andere subClasses aanroepen.

En de sterk versimpelde aanroep:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| class baseClass { var $myArray; function __construct() { $this->myArray['subClass1'] = new subClass(); $this->myArray['subClass2'] = new subClass(); } } class subClass { var $parent; function func1() { } function func2() { } } $baseClass = new baseClass(); |
Ik ben nu echter al twee dagen on and off aan het prutsen hoe ik dit voor elkaar krijg zonder een circular reference te maken in de twee subclasses mbv. $parent.
$this->parent werkt niet, omdat de 'child' classes de baseClass niet extenden (ze extenden al een andere class namelijk). In principe kan de baseClass weggedacht worden; en dan ben ik op zoek naar een manier om de andere classes in de "myArray" aan te spreken.
Het zou mooi zijn als ik in de subClasses dit zou kunnen doen (psuedo)
code:
1
| $this->parentArray['subClass2']->func2(); |
... dit werkt uiteraard niet. Iemand een idee?
Ik had wel een oplossing gevonden; maar ik weet niet in hoeverre deze oplossing 'netjes' is, en ik wil graag buiten het noemen van de baseClass om andere subClasses aanroepen.
PHP:
1
2
| global $baseClass; $baseClass->myArray['subClass1']->func1(); |
edit:
Het systeem draait op een PHP5.2 server, dus namespaces zijn niet toegestaan (PHP5.3+ als ik me niet vergis)
Het systeem draait op een PHP5.2 server, dus namespaces zijn niet toegestaan (PHP5.3+ als ik me niet vergis)
[ Voor 14% gewijzigd door Scyth op 26-03-2009 11:51 ]
Dell Studio XPS 16
Project: BavBierSub 1.0 BavBierSub 2.0