繁体   English   中英

PHP变量分配为假值

[英]php variable assign as false value

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

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

你能解释一下为什么吗

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

false通常仅应用于将布尔值设置为true / false变量。 对于其他变量,默认为null是更好的选择。 但这主要只是样式选择,通常都可以。

最好初始化变量以提高可预测性。 例如:

foreach($stuff as $thing){
   $myVar[]=$thing;
}
doSomething($myVar);

如果$stuff为空(但希望仍然是数组),则$myVar在循环后将不存在,因此doSomething()将接收null作为参数而不是array ,从而在错误日志中至少发出警告。

对于函数/方法,有类似的原因:

function myFunc($stuff){
   $result=null;
   if($stuff==true)
       $result=array(1,2,3);
   return $result;
}

这看起来不错,因为您已经像好学生一样初始化了$result变量。 但是,如果$stuff!=true ,则$result将为null而不是array 这似乎没什么大问题,但是所有使用myFunc()函数的代码现在都必须能够处理数组空值(通常这意味着必须编写不必要的if()子句进行类型检查)。

而如果myFunc()始终返回数组(通过将$result初始化为array()则很容易实现),则您无需担心什么。

我有点回避了您的问题,但是希望这仍然可以帮助您理解概念。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM