我想传递(任何类型,不仅是PHP的基元)Type作为函数参数。更像是C ++的模板。在PHP中有可能吗?想象代码:
function foo(T a)
{
$output = new T();
//do something.
}
我尝试将类型名称作为字符串传递,然后将settype()
用于该类型的变量,但settype()
仅适用于PHP的基元类型。我的目标实际上是将类类型作为参数传递。
答案 0 :(得分:6)
如果要实例化上述内容,请将类名作为字符串传递,然后实例化它!
function foo($obj_string)
{
$object = new $obj_string();
//do stuff with $object
}
答案 1 :(得分:2)
我看到你已经接受了答案,但是从原始帖子中,它显示了在函数中传递一个对象变量。对于那些需要这样做的人来说,不是能够将类的名称作为字符串传递,而是可以这样做:
class Blah
{
public $x = 123;
}
function Foo($b) {
$class = get_class($b);
$object = new $class();
var_dump($object);
}
$aa = new Blah();
Foo($aa);