以任何方式存在风险或被视为不良做法"修改"像这样的变量一次?我知道不要通过重用$A
来创建任何其他函数来创建混淆和冲突,但是在这样的单个简单函数中?看起来像为输出字符串定义新变量就像这样的单位是浪费的,而在长程序中真的会加起来。
if (whatever conditions) {
$A = $X * $Y;
if (user selected ft as units) {
$A = $A / 304.8.' ft';
}
elseif (user selected in as units) {
$A = $A / 25.4.' in';
}
echo $A
}
答案 0 :(得分:3)
简答:
否强>
答案很长:
这取决于上下文和函数体的大小,和/或代码片段周围代码的复杂程度。
编码流程的替代方案是:
switch(true)
您编写的代码片段对我来说非常好,我会将if
语句视为更新 $A
变量,而不是重用强>它。我个人经常使用它,我的同事也是如此。
同样,可见性取决于周围的代码。如果此代码段位于另一个if
内,那不会很好,但不是因为变量更新,而是因为您堆叠的if
太多了。
答案 1 :(得分:1)
通常有替代方法,也不需要定义新的变量,例如:将此移动到一个函数return
,然后将该值存储在变量中一次(这也将使代码整齐)。
示例:
function getA($X,$Y) {
if (user selected ft as units) {
return ($X * $Y) / 304.8.' ft';
}
elseif (user selected in as units) {
return ($X * $Y) / 25.4.' in';
}
}
if (whatever conditions) {
echo getA($X,$Y);
}
或者在您的特定情况下有两个回声,例如每个回声,例如
if (whatever conditions) {
$A = $X * $Y;
if (user selected ft as units) {
echo ($A / 304.8).' ft';
}
elseif (user selected in as units) {
echo ($A / 25.4).' in';
}
}
重新定义$A
你正在做的事情是不好的做法,因为它不清楚$A
的目的是什么。它是数学运算的结果还是表象元素?
如果您必须重复使用它,至少可以将它重新用于同一目的。