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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)