PHP类中,若要初始化成员属性,那么成员属性的初始值必须是一个常数,如果不是常数(如变量),则会报错,所以,如果你要初始化就只能是在构造函数里进行初始化,不过你可以写一个方法,这样就可以在构造函数里批量初始化,不用写那么多的$this->变量名称,而且还支持非常数的初始化。这是最简单的,如果你还想增加访问控制,可以相对改一下就行了
Class A{
function __construct(){
$vars = array(
'x' =>'china',
'y' => 'beijing',
'z' => rand(),
);
$this->initVar($vars);
}
function initVar($vars){
if(!empty($vars)){
foreach($vars as $var => $val){
$this->$var = $val;
}
}
}
function getVar($var){
return $this->$var;
}
}
$a = new A();
echo $a->getVar('z');
?>