将可变数量的变量传递给 PHP 中的类

2024-03-23

我需要传递可变数量的字符串来实例化不同的类。我总是可以对数组的大小进行切换:

switch(count($a)) {
case 1:
    new Class(${$a[0]});
    break;
case 2:
    new Class(${$a[0]}, ${$a[1]});
    break;
etc...

必须有更好的方法来做到这一点。如果我有一个字符串数组(“variable1”,“variable2”,“variable3”,...),如何在不手动考虑每种可能性的情况下实例化一个类?


如果你一定要这样做,你可以尝试:

$variable1 = 1;
$variable2 = 2;
$variable3 = 3;
$variable4 = 4;

$varNames = array('variable1', 'variable2', 'variable3', 'variable4');
$reflection = new ReflectionClass('A');
$myObject = $reflection->newInstanceArgs(compact($varNames)); 

class A
{
    function A()
    {
        print_r(func_get_args());
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将可变数量的变量传递给 PHP 中的类 的相关文章

随机推荐

  • 使用 cfsqltype 是一个好的做法吗?

    编写 cfqueryparam 或 cfprocparam 时 cfsqltype 是可选的 不过 我通常会看到它的编码 指定 cfsqltype 有什么好处吗 主要好处是在将查询输入传递到查询之前对查询输入进行额外的健全性检查 另外 对于
  • 如何在powershell中修改GOPATH

    我正在尝试将我的项目目录添加到 GOPATH 在 linux 中我可以这样做 export GOPATH HOME mygo在 bashrc中 powershell中的等价物是什么 这应该遵循使用 Powershell 设置任何环境变量的方
  • TypeError: 无法连接 'str' 和 'list' 对象是什么意思?

    这个错误是什么意思 类型错误 无法连接 str 和 list 对象 这是代码的一部分 for j in 90 52 62263 26 5651 10 8123 if j 90 z 0 elif j 52 62263 z 0 72 144 2
  • RecyclerView 在 ConstraintLayout 内时更改其滚动位置

    我遇到了一个问题RecyclerView当它是 a 的孩子时ConstraintLayout 本来 RecyclerView位于视图层次结构深处的某个地方Relative Frame and LinearLeayout一切都运行良好 直到我
  • 无法从另一个 Maven 子项目调用 Hibernate/QueryDSL

    我有两个 Maven 子项目 jetty runner1 和 jetty runner2 我的目录结构如下所示 jetty runner1 pom xml jetty runner1 src main java com jetty runn
  • 尝试在现有的flutter应用程序中实现flutter_contacts示例

    我正在尝试实现这里的 flutter contacts 示例 颤动接触 https github com pavelshackih flutter contacts blob master android app src main kotl
  • 如何在 django DRF 中处理时区而不重复太多?

    Intro 我的项 目TIME ZONE等于 UTC 而我的用户来自太多时区 所以 当我用户 makePOST or PUT with date or time or dateTime字段我将这些字段转换为UTC before serial
  • 将 FirestoreCollection 转换为数组?

    我在将 Firestore 数据转换为 Chart js 图表的数组时遇到困难 从 Firestore 获取数据 fetchData Get data this updatesCollection this afs collection p
  • 如何为多个 #id 创建 ::before

    是否可以在前面插入多个id I have ps4 before ps3 before 我尝试过 ps4 ps3 before但什么也没有 是否可以在之前插入更多 id 我想保持CSS尽可能干净和简短 我尝试查看 css trick 但找不到
  • 采用 OpenGL 中的 Wu 算法的数字微分分析仪

    我正在尝试制作一种使用 DDA 数字差分分析器 绘制线条的算法 该算法也使用 Wu 的算法作为抗锯齿 问题是输出看起来不太好 尤其 我选择的颜色 它改变了 我知道为什么 但我想知道它是否必须是这样的 像素颜色越亮则越亮 我怎样才能选择我想要
  • 从数据框中仅提取数字列[重复]

    这个问题在这里已经有答案了 我在互联网上查找 但没有找到简单而干净的解决方案 这是我的 df 的一部分 structure list ID structure c 12L 12L 12L 12L 12L 12L 12L 12L 12L 12
  • 缺少 1 个必需的位置参数:“key”

    class Keys def init self self key list 1 one 2 two 3 three def get name self key self ddd key key1 Keys key1 get name 1
  • React Native 导航显示白屏

    使用反应本机导航进行编译时出现白屏 请问为什么会这样 我似乎没有收到任何错误代码 什么也没有 我只看到一个白屏 为什么会这样呢 我的代码看起来像这样 表明到目前为止我似乎没有任何错误 Here is what the Error seems
  • 断言代码无法编译

    简而言之 如何编写一个测试 检查我的类不可复制或可复制分配 而只能移动和移动分配 一般来说 如何编写测试 确保特定代码does not编译 像这样 Movable but non copyable class struct A A cons
  • 如何在 @ElementCollection 上指定主键

    因此 如果某些表缺少主键 innodb 的行为可能会导致问题 因此 在 Hibernate 中 我正在寻找一个键来指定 ElementCollection 表上的主键 并将 Set 作为底层数据结构 我找到了一种带有地图的主键的方法 但这有
  • PHP,preg_replace,用标签属性替换标签

    我可以详细解释一下如何使用 php 替换具有当前 attr 的标记吗 我阅读了手册和一些参考资料 如何使用php preg replace替换HTML标签 https stackoverflow com questions 3376051
  • 不允许序列化“Doctrine\DBAL\Driver\PDOConnection”

    我正在做一个项目 我做了一个可导出的课程 这是班级 我正在发送查询以导出类型 Illuminate Database Eloquent Builder
  • 检查是否已经过去 24 小时(从字符串中读取)

    我将日期作为字符串保存在以下格式的文件中 Sat Jul 21 23 31 55 EDT 2012 如何查看是否已经过了 24 小时 我是初学者 所以请解释一下 我不确定我是否完全理解这个问题 您是否有两个日期可供比较 或者您是否希望定期检
  • 在 Jenkins 中设置特定的 Python

    我对配置 Jenkins 或 Python 很陌生 但我必须在 Jenkins 中设置统一测试 我的程序是用Python编写的 但仅适用于Python 2 6 而我应该使用的Jenkins版本是2 7 所以我尝试设置Jenkins来设置一些
  • 将可变数量的变量传递给 PHP 中的类

    我需要传递可变数量的字符串来实例化不同的类 我总是可以对数组的大小进行切换 switch count a case 1 new Class a 0 break case 2 new Class a 0 a 1 break etc 必须有更好