Reputation: 193
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
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