Php 重新定义/重用变量是不明智的吗

Php 重新定义/重用变量是不明智的吗,php,variables,Php,Variables,像这样一次修改一个变量会有风险吗,或者被认为是不好的做法?我知道在任何其他函数中重复使用$A不会造成混乱和冲突,但是在这样一个简单的函数中?似乎仅仅为输出字符串定义新变量是浪费时间的,而且在一个长程序中,这样的单位真的会累加 if (whatever conditions) { $A = $X * $Y; if (user selected ft as units) { $A = $A / 304.8.' ft'; } elseif (user s

像这样一次修改一个变量会有风险吗,或者被认为是不好的做法?我知道在任何其他函数中重复使用$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
}

通常还有其他方法,也不需要定义新的变量,例如,将其移动到一个函数,该函数返回一个值,然后将该值存储在一个变量中,该变量还将分离代码

例如:

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的用途是什么。它是一个数学运算的结果还是一个表现元素

如果您必须重复使用,请至少为相同目的重复使用。

简短回答:

没有

长答覆:

这取决于上下文和函数体的大小,以及/或者代码段周围的代码有多复杂

对该流程进行编码的备选方案是:

使用else,复制代码,在每个if块中移动乘法,这当然不好 使用其他奇怪的构造,如switchtrue <>你编写的代码片段对我来说很好,我会考虑if语句来更新$A变量而不是重用它。我个人和我的同事经常使用它


同样,可见性取决于周围的代码。如果这个片段在另一个If中,那就不好了,但这不是因为变量正在更新,而是因为你叠加了太多的If。

假设用户选择了某个内容,并且这是两个选择之一,我觉得这看起来很好。