PHP中如何在Subgrid内实现动态数量的Row实例?
解决Subgrid动态Row数量的实现方案
你碰到的这个致命错误,是因为PHP语法规则不允许在参数展开(...$aRows)之后再传递普通位置参数,反过来也一样——参数展开要么作为最后一个参数使用,要么把所有参数先合并成一个数组再一次性展开。
针对你的需求,正确的实现思路是把固定的Header Row、动态生成的内容Rows、固定的Footer Row全部合并成一个数组,再通过...展开传入Subgrid:
// 先定义固定的头部和尾部Row $headerRow = new Row( new Column(50), new Column(50) ); $footerRow = new Row( new Column() ); // 动态生成内容Rows(这里示例生成2个,可根据需求改成5个或其他数量) $aRows = []; $dynamicRowCount = 2; // 可替换为动态计算的数值 for ($i = 0; $i < $dynamicRowCount; $i++) { $aRows[] = new Row( new Column() ); } // 合并所有要传给Subgrid的参数:头部 + 动态内容 + 尾部 $subgridArgs = array_merge([$headerRow], $aRows, [$footerRow]); // 最终构建网格结构 new Row( new Column( new Subgrid(...$subgridArgs) ) );
这种写法既满足了动态Row数量的需求,又符合PHP的语法规则,不会触发参数展开的错误。
内容的提问来源于stack exchange,提问作者xmanolis
相关产品推荐
相关产品推荐

