learnMedlem sedan jan. 20051 130 inlägg Jag skulle behöva använda en klass som är sparad i variabeln $klassnamn. Går det på något sätt??
Typ så här:
$klassnamn = "user";
$test = new $klassnamn("Användare");
$test -> enMetod();
.
.
.
Så enkelt är det ju tyvärr inte...
Hur kan jag göra??
pulseMedlem sedan nov. 200373 inlägg Jo det där ska fungera.
<?php
class Test{
function __construct($name){
$this->name = $name;
}
public function getName(){
return $this->name;
}
}
$clazz = "Test";
$t = new $clazz("Kalle");
echo $t->getName();
?>
Men finns bättre sätt att göra det på. Kallas reflection läs här:
http://se.php.net/manual/en/language.oop5.reflection.php#language.oop5.reflection.reflectionclass
learnMedlem sedan jan. 20051 130 inlägg Okay, nice! Varför är det bättre att använda reflection? Känns ju enklare att bara göra som du skrev ovanför...
pulseMedlem sedan nov. 200373 inlägg Ska du bara skapa några klasser räcker det där. Behöver du mer flexibilitet kan du kika in reflection finns ju en hel del man kan göra där.
learnMedlem sedan jan. 20051 130 inlägg Om klassen jag vill "anropa" är abstract då...?
Så här brukar jag använda abstrakta klasser:
$result = min_klass::min_metod();
Följande fungerar ju inte:
$class_name = "min_klass";
$class_method = "min_metod";
$result = $class_name::$class_method();
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in...
Hur kan jag göra istället?