反过来说,如果在类中不对变量进行初始化赋值,只声明变量,应该对程序不会有错误吧。类似如: var $Page=0; var $KeyWord="";像$KeyWord 赋值为空, 这样做的好处? 这个才是我想要知道的本意。
看个例子 <?php class OO { var $a; function __get($prop_namee) { var_dump(isset($this->a)); var_dump(empty($this->a)); var_dump($this->a); return $this->a; } }$a = new OO(); $a->__get('a'); ?>sudo php -f test.php //也就是上面的文件 输出: bool(false) bool(true) NULL
PHP的变量没有声明过程,在程序中直接使用“var $my_var;”将导致错误; PHP中,类成员可以声明。参见PHP的类成员变量声明 这样使用将出现错误: var $Page=0; var $KeyWord="";
<?php $b; var_dump(isset($b)); var_dump(empty($b)); var_dump($b); ?> 运行结果 bool(false) bool(true) PHP Notice: Undefined variable: b in /home/xinchen/test.php on line 5Notice: Undefined variable: b in /home/xinchen/test.php on line 5 NULL 明白了吧
避免以前代码留下来的影响 是指?
if(condition ){
$a = "lllll";
}然后你使用if(empty($a)){
//你的逻辑
}并且呢,你包含了别人的一个文件,他的文件中也有一个变量名叫$a, 那么问题就来了,即使condition不满足,你的$a也不是empty
var $Page=0;
var $KeyWord="";像$KeyWord 赋值为空, 这样做的好处? 这个才是我想要知道的本意。
<?php
class OO {
var $a;
function __get($prop_namee)
{
var_dump(isset($this->a));
var_dump(empty($this->a));
var_dump($this->a);
return $this->a;
}
}$a = new OO();
$a->__get('a');
?>sudo php -f test.php //也就是上面的文件
输出:
bool(false)
bool(true)
NULL
PHP中,类成员可以声明。参见PHP的类成员变量声明
这样使用将出现错误:
var $Page=0;
var $KeyWord="";
$b;
var_dump(isset($b));
var_dump(empty($b));
var_dump($b);
?>
运行结果
bool(false)
bool(true)
PHP Notice: Undefined variable: b in /home/xinchen/test.php on line 5Notice: Undefined variable: b in /home/xinchen/test.php on line 5
NULL
明白了吧