PHP 7.4 动态变量名原花括号赋值语法废弃,如何实现相同效果
原有$total{$column}写法触发报错的原因是PHP7.4+将该语法统一识别为数组/字符串偏移访问的废弃语法,不再支持用于动态变量名的拼接解析,可通过以下两种兼容方案解决:
方案1:使用标准可变变量语法
直接将拼接后的变量名字符串用大括号包裹,不会触发废弃警告,实现效果和原有写法完全一致:
// 动态变量赋值 ${'total' . $column} = 0; // 动态变量输出 echo ${'total' . $column};
实际运行示例:
$column = 'A'; ${'total' . $column} = 20; $column = 'B'; ${'total' . $column} = 10; echo $totalA; // 输出 20 echo $totalB; // 输出 10
方案2(更推荐):使用关联数组替代动态变量
动态变量会降低代码可读性和可维护性,优先推荐用关联数组实现相同需求,完全兼容所有PHP版本:
// 赋值 $total[$column] = 0; // 输出 echo $total[$column];
这种写法后续批量处理数据也更方便,不需要额外拼接变量名。
内容的提问来源于stack exchange,提问作者Delickate
相关产品推荐
相关产品推荐

