在php中创建动态引用类型的对象

时间:2015-01-31 12:17:02

标签: php

在Javascript中,我可以动态地引用和使用构造函数:

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中获取类声明并动态引用和使用它,以便调用代码不知道/关心它创建的是什么?

1 个答案:

答案 0 :(得分:2)

在PHP中,您无法传递类(或其构造函数)本身,但其名称为:

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

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