LlearnMedlem sedan jan. 20051 130 inlägg Frågan#1 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??
PpulseMedlem 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
LlearnMedlem 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...
PpulseMedlem 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.
LlearnMedlem 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?