netishix
netishix

Reputation: 193

Is it necessary to declare null variables manually in 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'];

 }
}

Upvotes: 0

Views: 1677

Answers (1)

Yolo
Yolo

Reputation: 1579

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

Upvotes: 1

Related Questions