---
title: "Anropa klass via sträng"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/175392-anropa-klass-via-sträng"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "learn"
published: "2008-11-18T20:13:22.000Z"
updated: "2008-12-16T13:48:36.000Z"
replies: 4
views: 581
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/175392-anropa-klass-via-sträng"
---

# Anropa klass via sträng

## #1 — learn, 2008-11-18T20:13Z

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:

```php
$klassnamn = "user";

$test = new $klassnamn("Användare");
$test -> enMetod();
.
.
.
```

Så enkelt är det ju tyvärr inte...

Hur kan jag göra??

Permalänk: https://www.webforum.nu/p/175392

## #2 — pulse, 2008-11-18T20:45Z

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>

Permalänk: https://www.webforum.nu/p/2153691

## #3 — learn, 2008-11-18T20:52Z

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...

Permalänk: https://www.webforum.nu/p/2153692

## #4 — pulse, 2008-11-18T21:47Z

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.

Permalänk: https://www.webforum.nu/p/2153704

## #5 — learn, 2008-12-16T13:48Z

Om klassen jag vill "anropa" är abstract då...?

Så här brukar jag använda abstrakta klasser:

```php
$result = min_klass::min_metod();
```

 

Följande fungerar ju inte:

```php
$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?

Permalänk: https://www.webforum.nu/p/2159780

---

Tråden på webben: https://www.webforum.nu/amne/php/175392-anropa-klass-via-sträng
