class Email
{
var $to = false;
var $subject = false;
}
我是PHP的初学者。我有一个班级Email
。在该课程中,我的变量$to
最初被分配到false
。它将被分配给另一个变量中存储的值。我不明白为什么这个变量有这个初始false
值。
你能解释一下为什么
答案 0 :(得分:4)
为变量赋予默认值通常是个好主意。这样,如果变量在重新分配之前使用,它将具有可预测的值。 false
和null
是有用的初始值,因为它们可以很容易地与稍后分配给变量的值区分开来。
false
通常只应用于保存布尔值true
/ false
值的变量。对于其他变量,null
是一个更好的选择作为默认值。但这通常只是一种风格选择,要么通常会奏效。
答案 1 :(得分:0)
初始化变量以获得可预测性是很好的。例如:
foreach($stuff as $thing){
$myVar[]=$thing;
}
doSomething($myVar);
如果由于某种原因$stuff
为空(但希望仍然是数组),则循环后$myVar
将不存在,因此doSomething()
将接收null
作为参数array
的{{1}},导致错误日志中至少出现警告。
对于功能/方法,有类似的原因:
function myFunc($stuff){
$result=null;
if($stuff==true)
$result=array(1,2,3);
return $result;
}
这看起来不错,因为您已经像好学生一样初始化了$result
变量。但如果$stuff!=true
,$result
将是null
而不是array
。这似乎不是什么大问题,但是使用myFunc()
函数的所有代码现在都必须能够处理数组 AND null值(通常这意味着必须编写不必要的{用于类型检查的{1}}子句。
如果if()
始终返回数组(通过将myFunc()
初始化为$result
而很容易),您可以减少一件事。
我有点支持你的问题,但希望这仍然可以帮助你理解这个概念。