为了账号安全,请及时绑定邮箱和手机立即绑定

将数组转换为链式方法

将数组转换为链式方法

PHP
四季花海 2022-12-30 17:45:47
我有一个这样的数组......$data = [    'columns' => [        [['increments', 'id']],        [['string', 'key'], ['index']],        [['text', 'value']],    ]];第一个值是函数名称,第二个值是一个 arg/args(参数)。我希望每个都像这样运行($table)...$table->increments('id');$table->string('key')->index();$table->text('value');我尝试用循环迭代数组,并将函数用作数组 [$functionName($params)] 方法以及“call_user_func”。但是失败了。像上面的例子一样,一个一个地调用它们的最佳方式是什么?
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

正如@IslamElshobokshy 所提到的,这是一个可疑的请求,这可能意味着您的设计一开始就有缺陷/效率低下。


如果你真的需要这样做,试试这样的事情:


foreach ($data['columns'] as $calls) {

  $currentValue = $table;

  foreach ($calls as $call) {

    $methodName = $call[0];

    $methodArgs = array_slice($call, 1);

    $currentValue = $currentValue->$methodName(...$methodArgs);

  }

}

这利用了变量函数/方法参数解包



查看完整回答
反对 回复 2022-12-30
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信