De topictitel mag dan wel niet al te helder zijn, waar ik naar zoek is een nette oplossing om in een klasse een andere klasse aan te roepen (om een variabele te wijzigen), die ik vervolgens ook buiten die klasse kan uitlezen door die klasse aan te roepen... Voorbeeld
Wat de bedoeling is is dat die echo onderaan uiteindelijk dus 12 weergeeft. Echter doet die dat niet, omdat $error los staat van de error_handling::set(12); in $foe. Ik wil dit gebeuren dus niet met globals regelen, alleen via de error_handling klasse moet je de boel kunnen beheren, wijzigen etc. Globals zijn daarnaast gewoon vies naar mijn mening
.
Door die class foe een extension van error_handling te maken (class foe extends...) kan ik wel wat werkends produceren, echter omdat die error handling 'globaal' moet zijn (die word ook in andere classes gebruikt) krijg ik 4 verschillende gelijke systemen, en zie ik door de bonsaiboompjes het bos straks niet meer. Dan krijg ik namelijk $foe->get en $bar->get, die hetzelfde doen, maar andere waarden teruggeven, en da's niet helder genoeg.
Vervolgens heb ik gedacht aan simpelweg in de class te zeggen "global $error", maar dan vrees ik dat dit voor elke functie apart moet, dat wordt een zootje.
Ga ik dit error-systeem met een zwikkie functies bouwen ipv een class, dan moet ik alsnog gebruik maken van $GLOBALS, en ook dat is dus niet zo netjes.
Hoe kan ik dit dus op een nette manier oplossen?
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
| <?php class error_handling { private $errno; function set($errno) { //doe verschillende checks $this->errno = $errno; } function get() { return $this->errno; } } class foe { function foe() { if(iets_faalde()) { error_handling::set(12); } } } $error = new error_handling; $foe = new foe; echo $error->get ?> |
Wat de bedoeling is is dat die echo onderaan uiteindelijk dus 12 weergeeft. Echter doet die dat niet, omdat $error los staat van de error_handling::set(12); in $foe. Ik wil dit gebeuren dus niet met globals regelen, alleen via de error_handling klasse moet je de boel kunnen beheren, wijzigen etc. Globals zijn daarnaast gewoon vies naar mijn mening
Door die class foe een extension van error_handling te maken (class foe extends...) kan ik wel wat werkends produceren, echter omdat die error handling 'globaal' moet zijn (die word ook in andere classes gebruikt) krijg ik 4 verschillende gelijke systemen, en zie ik door de bonsaiboompjes het bos straks niet meer. Dan krijg ik namelijk $foe->get en $bar->get, die hetzelfde doen, maar andere waarden teruggeven, en da's niet helder genoeg.
Vervolgens heb ik gedacht aan simpelweg in de class te zeggen "global $error", maar dan vrees ik dat dit voor elke functie apart moet, dat wordt een zootje.
Ga ik dit error-systeem met een zwikkie functies bouwen ipv een class, dan moet ik alsnog gebruik maken van $GLOBALS, en ook dat is dus niet zo netjes.
Hoe kan ik dit dus op een nette manier oplossen?
Schaadt het niet, dan baat het niet