我有一个这样的数组......$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);
}
}
- 1 回答
- 0 关注
- 69 浏览
添加回答
举报
0/150
提交
取消