let op het volgende:
bovenstaande werkt al zie je duidelijk staan dat:
$bla->set_className("thirdClass"); haakjes mist,
je zou denken dat je:
$bla->set_className("thirdClass()");
zou moeten neerzetten om dit te laten werken,
sterker nog, als je die haakjes wel neerzet krijg je een":
Fatal error: Cannot instantiate non-existent class: thirdclass()
wat ik ook raar vindt is dat ik uberhaubt die $tmp oplossing moet gebruiken omdat dit ook niet werkt:
$nC = new $this->get_className();
het kan ook heel goed zijn dat ik al te lang zit te staren en dingen over het hoofd zie,
afgezien van het feit dat bovenstaande code verre van logisch inelkaar steekt op het eerste gezicht
code:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| class firstClass{
var $val="";
var $aClass="";
function set_val($val_){
$this->val=$val_;
}
function get_val(){
return $this->val;
}
function set_className($val_){
$this->aClass=$val_;
}
function get_className(){
return $this->aClass;
}
function firstClass(){
//leeg
}
function someFunction(){
$tmp=$this->get_className();
$nC = new $tmp;
$nC->third($this->val);
}
}
class seccondClass extends firstClass{
function seccond(){
$this->someFunction();
}
}
class thirdClass extends firstClass{
function third($val_){
echo $val_;
}
}
$bla= new seccondClass();
$bla->set_val("hello universe");
$bla->set_className("thirdClass");
$bla->seccond(); |
bovenstaande werkt al zie je duidelijk staan dat:
$bla->set_className("thirdClass"); haakjes mist,
je zou denken dat je:
$bla->set_className("thirdClass()");
zou moeten neerzetten om dit te laten werken,
sterker nog, als je die haakjes wel neerzet krijg je een":
Fatal error: Cannot instantiate non-existent class: thirdclass()
wat ik ook raar vindt is dat ik uberhaubt die $tmp oplossing moet gebruiken omdat dit ook niet werkt:
$nC = new $this->get_className();
het kan ook heel goed zijn dat ik al te lang zit te staren en dingen over het hoofd zie,
afgezien van het feit dat bovenstaande code verre van logisch inelkaar steekt op het eerste gezicht
"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who