是否有必要在php中手动声明空变量?

时间:2016-05-25 00:10:49

标签: php

我知道PHP将未定义的变量视为null。但是尽管如此,当我想使用一个未定义的变量时,它会抛出一个E_NOTICE错误,说明变量是未定义的。为防止这种情况,我应该手动将此E_NOTICE设置变量修改为null吗?

例如:

class Myclass{

 private $var1;
 private $var2;

 public function __construct($settings){
  $allowedKeys = array("var1","var2");
  foreach($allowedKeys as $key => $value){
   if(!isset($settings[$value])){
   $settings[$value] = null;
   }
 }

 $this->var1 = $settings['var1'];
 $this->var2 = $settings['var2'];

 }
}

1 个答案:

答案 0 :(得分:1)

您有四种方法可以阻止E_NOTICE:

一种是在使用变量之前将变量设置为null,string,integer。即:

$variable = null;
$variable = '';
$variable = 0;
$variable = [];

...

if(empty($variable)) {
    // do something with this situation
}

另一种是检查变量是否存在。就像你在一行中所做的那样:

if(isset($variable)){
   ...
}

第三个是关闭你的scipt中的E_NOTICE:

error_reporting(E_ALL & ~E_NOTICE);

第四个是在你的php.ini文件中关闭它(虽然我不推荐这个):

error_reporting = E_ALL & ~E_NOTICE // you must find this line in your php.ini