我有一個這樣的數(shù)組......$data = [ 'columns' => [ [['increments', 'id']], [['string', 'key'], ['index']], [['text', 'value']], ]];第一個值是函數(shù)名稱,第二個值是一個 arg/args(參數(shù))。我希望每個都像這樣運行($table)...$table->increments('id');$table->string('key')->index();$table->text('value');我嘗試用循環(huán)迭代數(shù)組,并將函數(shù)用作數(shù)組 [$functionName($params)] 方法以及“call_user_func”。但是失敗了。像上面的例子一樣,一個一個地調(diào)用它們的最佳方式是什么?
1 回答

鴻蒙傳說
TA貢獻1865條經(jīng)驗 獲得超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);
}
}
這利用了變量函數(shù)/方法和參數(shù)解包。
- 1 回答
- 0 關(guān)注
- 87 瀏覽
添加回答
舉報
0/150
提交
取消