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 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度