2015-01-31 5 views
1

В JavaScript, я могу обратиться и использовать функцию-конструктор динамически:Создание объекта динамического типа ссылки в PHP

function Circle() { 
} 

function Squere() { 
} 

var constructor = null; 

constructor = Circle; 
var shape1 = new constructor(); 
console.log(shape1 instanceof Circle); // output: true 

constructor = Squere; 
var shape2 = new constructor(); 
console.log(shape2 instanceof Squere); // output: true 

Можно ли и как я могу сделать то же самое в PHP? Как я могу взять объявление класса в php и ссылаться на него и использовать его динамически, чтобы вызывающий код не знал/не заботился о том, что он создает?

ответ

2

В PHP, вы не можете передать класс (или его конструктор) сам, но его название:

class Circle { /* ... */ } 
class Square { /* ... */ } 

$classname = 'Circle'; 
$shape1 = new $classname(); 
// $shape1 is now a Circle 
+0

Спасибо, это работает. – elpddev

Смежные вопросы