从函数返回值创建新的类实例 - 一行代码

4

是否存在一行代码(是的,我喜欢它们),可以根据函数返回的字符串创建一个类的新实例?

$obj = new {functionThatReturnsAStringValue()}();
2个回答

6
我理解您的意思,但我认为您可以这样做:
$obj = ($class = functionThatReturnsAStringValue()) ? new $class() : null;

如果 functionThatReturnsAStringValue() 返回 false,则您可以将 : null; 更改为 new OtherClass() - Barif

2
function getObject()
{
  return 'DateTime';
}

$datetime = call_user_func(function ($obj) { return new $obj; }, getObject());

我认为,使用call_user_func()不是最佳实践。 - Barif
取决于你的需求。尝试使用返回字符串的函数动态调用类并将其写在单行代码中也可能不是最佳实践。 ;) - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接