php变量赋值为false值

时间:2014-02-01 10:29:05

标签: php class

class Email
{       
    var $to = false;
    var $subject = false;   
}

我是PHP的初学者。我有一个班级Email。在该课程中,我的变量$to最初被分配到false。它将被分配给另一个变量中存储的值。我不明白为什么这个变量有这个初始false值。

你能解释一下为什么

2 个答案:

答案 0 :(得分:4)

为变量赋予默认值通常是个好主意。这样,如果变量在重新分配之前使用,它将具有可预测的值。 falsenull是有用的初始值,因为它们可以很容易地与稍后分配给变量的值区分开来。

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而很容易),您可以减少一件事。

我有点支持你的问题,但希望这仍然可以帮助你理解这个概念。

相关问题