Bij het 'dynamisch' laden van een method uit een class, gaat er iets niet goed met het gebruiken van $this. Nu gebruik ik call_user_func in een class, om een andere class aan te roepen met een bepaalde method. Hieronder een heel simpel voorbeeld van wat ik doe. Het onderstaande zorgt voor deze error: Using $this when not in object context...
Nu is er op internet het een en ander te vinden over deze error, maar ik vraag me af waar hier nu precies het probleem zit. Wellicht beter gezegd, kan iemand uitleggen wat het probleem is; de context (class in class) of de call_user_func?
Wat de bedoeling is? Op basis van een string een controller inladen die iets voor mij doet. Dus één algemene class met de basis handelingen en een andere class die er iets aan toevoegd op basis van de request. Zie het als fruit waarbij appel de eerste de basis is en de tweede gedetailleerder is.
Wellicht zijn er betere manieren, maar dit is waar ik mee op de proppen gekomen ben.
---
Edit: Ik heb een oplossing gevonden in de volgende methode: http://rabaix.net/en/arti...s-with-dynamic-parameters
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
| class ClassA { function methodA { return call_user_func(array('ClassB', 'ClassBMethodA')); } } class ClassB extends ClassA { private $ID; function __construct () { $this->ID = $this->get_ID(); } function MethodA () { echo $this->ID; } } new ClassA(); |
Nu is er op internet het een en ander te vinden over deze error, maar ik vraag me af waar hier nu precies het probleem zit. Wellicht beter gezegd, kan iemand uitleggen wat het probleem is; de context (class in class) of de call_user_func?
Wat de bedoeling is? Op basis van een string een controller inladen die iets voor mij doet. Dus één algemene class met de basis handelingen en een andere class die er iets aan toevoegd op basis van de request. Zie het als fruit waarbij appel de eerste de basis is en de tweede gedetailleerder is.
Wellicht zijn er betere manieren, maar dit is waar ik mee op de proppen gekomen ben.
---
Edit: Ik heb een oplossing gevonden in de volgende methode: http://rabaix.net/en/arti...s-with-dynamic-parameters
[ Voor 5% gewijzigd door TheNephilim op 18-03-2013 20:24 ]