如何使用存储在变量中的类名创建新对象以及如何将另一个变量传递到此类的构造函数中?

发布于 2024-08-24 21:45:34 字数 235 浏览 2 评论 0原文

我将类名存储在变量 $classname; 中我还有一个应该传递给对象构造函数的值数组。

$classname = "MyClass";
$variables = array(1, 2, 3, 4);

我需要

$objInstance = new MyClass(1, 2, 3, 4);

怎样?

谢谢。

I have classname stored in variable $classname; also I have an array of values I should pass into object constructor.

$classname = "MyClass";
$variables = array(1, 2, 3, 4);

I need

$objInstance = new MyClass(1, 2, 3, 4);

How?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

二智少女 2024-08-31 21:45:34
$r = new ReflectionClass($classname);
$objInstance = $r->newInstanceArgs($variables);
$r = new ReflectionClass($classname);
$objInstance = $r->newInstanceArgs($variables);
垂暮老矣 2024-08-31 21:45:34
$objInstance = new $classname($variables[0], $variables[1], $variables[2], $variables[3]);
$objInstance = new $classname($variables[0], $variables[1], $variables[2], $variables[3]);
雅心素梦 2024-08-31 21:45:34

从 PHP 5.3 开始,您可以使用 通过 ... 进行参数解包,将数组解包到参数列表中,如下所示:new $classname(...$variables)

微量元素:

<?php
class MyClass{
  function __construct($a,$b,$c,$d) { echo "$a, $b, $c, $d\n"; }
}
$classname = "MyClass";
$variables = array(1, 2, 3, 4);

$objInstance = new $classname(...$variables); // Outputs: 1, 2, 3, 4

As of PHP 5.3, you can use Argument unpacking via ... to unpack an array into argument list as in: new $classname(...$variables).

MWE:

<?php
class MyClass{
  function __construct($a,$b,$c,$d) { echo "$a, $b, $c, $d\n"; }
}
$classname = "MyClass";
$variables = array(1, 2, 3, 4);

$objInstance = new $classname(...$variables); // Outputs: 1, 2, 3, 4
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文