因为我是一个喜欢清晰,简洁并且不易出错的代码的程序员,所以在使用它之前,我总是将变量分配一个默认值;我相信我们都知道为什么这是一个好主意。设置对象的初始值
然而,我觉得非常烦人的一种情况是,当涉及到预先设置用于保存对象的变量时。我还没有找到合适的值得设定的初始值。
我觉得很重要的一点是,我也不喜欢依赖PHP的松散类型的功能。我不喜欢在它的寿命期间改变变量的类型,因为我发现它是一个混乱的,容易出错的猜谜游戏。在过去,我将对象变量的初始值设置为NULL,但这在PHP中并不是一个合适的值,因为这会从变量表中除去变量并允许由GC收集变量;在使用它之前不会收集它的可能性,但它仍然看起来很脏。
这就是说,当你的变量持有一个对象时,你们将你的初始值设置为什么?
$foo_id = 0;
$is_foo = false;
$foo = '';
$obj_foo = NULL; // not really an appropriate initial value
编辑
为了澄清为什么我觉得默认的值不应设置为null,采取如下:
$obj_foo = null;
echo isset($obj_foo); // false
通常情况下,这会不会导致问题,但我可以看到这样做的痛苦1%。
当您只是问人们如何做时,您如何确定接受哪个答案?那么应该是一个CW。 – Gordon 2010-11-08 19:10:14
'NULL'没有那么糟糕,至少比未定义的变量更好。 – 2010-11-08 19:14:20
@戈登这是真的,应该是。当我发布这个问题时,我没有想到它。我在这里是新的,不知道现在是否可以改变:/ – Craige 2010-11-08 19:18:22