不必要的局部变量:编写冗余变量提升代码可读性是良好实践吗?
这个问题没有非黑即白的标准答案,核心判断标准是你加的变量有没有真的帮读代码的人降低理解成本,而不是单纯看有没有「多定义了一个变量」。
针对你给出的示例分析
你写的这段代码完全是非常好的实践,根本算不上「冗余」:
$arrImages = array_slice($arrImages, $offset, self::LIMIT_IMAGES); return $arrImages;
就算你改成直接return array_slice($arrImages, $offset, self::LIMIT_IMAGES);运行结果完全没有区别,但前者的可读性要好很多:扫一眼就知道你是对原图片数组做了分页截取之后再返回处理后的结果,不需要额外去想array_slice的返回值是什么、直接返回的对象到底代表什么含义。
这种变量是用来承载逻辑节点的含义的,完全是有价值的写法。
真正应该避免的无意义冗余变量
- 变量名没有提供任何额外信息,比如
$temp = 计算逻辑; return $temp;,除了多写一行代码没有任何作用 - 单块逻辑里加了太多零散的变量,反而要额外记每个变量的含义,提升了理解成本
- 变量名和实际存储的内容不符,反而会误导后续维护代码的人
通用实践原则
- 只要加变量能让逻辑意图更清晰,就放心加,现在IDE的自动补全不会增加你的编码成本,后续改你代码的人只会觉得你靠谱
- 别为了炫技强行把多行逻辑压成一行,排查bug的时候你自己都要拆半天才能理清楚逻辑
- 加的变量名要准确对应它的含义,不然加了还不如不加
内容的提问来源于stack exchange,提问作者Jakub Mróz
相关产品推荐
相关产品推荐

