【发布时间】:2011-11-08 17:09:11
【问题描述】:
这是一种好的做法吗?如果我将变量的稍微改变的值分配给它自己,是否有机会出现 fubar?
例如
$myVar = 1;
$myVar = $myVar + 33959902;
$myVar = rtrim($myVar,2);
$myVar = explode(",",$myVar);
我知道这会起作用,但是在 PHP 中这样做安全吗?
【问题讨论】:
这是一种好的做法吗?如果我将变量的稍微改变的值分配给它自己,是否有机会出现 fubar?
例如
$myVar = 1;
$myVar = $myVar + 33959902;
$myVar = rtrim($myVar,2);
$myVar = explode(",",$myVar);
我知道这会起作用,但是在 PHP 中这样做安全吗?
【问题讨论】:
这违反了使用好的变量名的做法——如果变量真的代表相同的东西,那么我会考虑重新分配给它。因为它在这种情况下不代表相同的东西,所以我认为它“不好”或“代码味道”。
(但是,否则它将“安全地工作”。)
编码愉快。
【讨论】:
是的。
在可读性/可维护性方面并不总是最好的。但是自从PHP is a dynamic and weak typed language之后就安全了。
【讨论】:
这样做完全没问题。有些人将它们全部组合成一条线,但我有点喜欢这种方法。
不过,我不同意其他答案。就个人而言,我认为为每个步骤分配不同的变量更令人困惑。看到每个变量都相同,这告诉我这组语句都相互关联。当您逐步解决它时,它看起来更像一个数学问题。我会说这确实遵循分配好的变量名称的做法。只是方法风格不同而已。
【讨论】:
PHP 是一种弱类型/松散类型的语言,这意味着您无需在为变量赋值之前声明其类型,并且您可以随时切换变量的数据类型。
所以你可以这样做,但我不建议在运行时切换变量的数据类型,因为这可能会导致严重的维护问题。对我来说,这是一种不好的做法。
就我个人而言,我什至通常使用某种hungarian notation(如$iCount、$oObject 等)作为变量标识符,以使代码更易于他人阅读和维护。
【讨论】: