doutao6380 2016-05-25 00:10
浏览 47
已采纳

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

I am aware that PHP considers undefined variables as null. But despite this, when i want to use one undefined variable it throws an E_NOTICE error saying the variable is undefined. To prevent this, should I fix this E_NOTICE setting variables manually to null?

For example:

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条回答 默认 最新

  • dongshuobei1037 2016-05-25 01:28
    关注

    You have four options to prevent E_NOTICE:

    One is to set the variable to either null, string, integer before you use the variable. I.e.:

    $variable = null;
    $variable = '';
    $variable = 0;
    $variable = [];
    
    ...
    
    if(empty($variable)) {
        // do something with this situation
    }
    

    The other is to check if the variable exists. Like you did in one line:

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

    Third one is to turn off E_NOTICE in your scipt:

    error_reporting(E_ALL & ~E_NOTICE);
    

    Forth one is to turn this off in you php.ini file (though i would not recommend this):

    error_reporting = E_ALL & ~E_NOTICE // you must find this line in your php.ini
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动