我知道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'];
}
}
答案 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