Я хотел бы передать (любой тип, не только примитивы PHP) Тип в качестве параметра функции. Больше похоже на шаблон C ++. Возможно ли это в PHP? мнимый код:
function foo(T a)
{
$output = new T();
//do something.
}
Я попытался передать имя типа в виде строки, а затем использовать settype()
к переменной этого типа, но settype()
работать только с типами примитивов PHP. Моя цель на самом деле передать тип класса в качестве параметра.
Если вы хотите создать что-то похожее на приведенное выше, как насчет передачи имени класса в виде строки, а затем создания его экземпляра!
function foo($obj_string)
{
$object = new $obj_string();
//do stuff with $object
}
Я вижу, что вы уже приняли ответ, но из исходного поста он показывает передачу переменной объекта в функцию. Для тех, кто просматривает это, которые должны сделать это таким образом, вместо того, чтобы передавать имя класса в виде строки, вы можете сделать это следующим образом:
class Blah
{
public $x = 123;
}function Foo($b) {
$class = get_class($b);
$object = new $class();
var_dump($object);
}
$aa = new Blah();
Foo($aa);