class Say{ public $name;
public $title; function __construct($name,$title){ $this->name=$name;
$this->title=$title; }
function eat(){ return $this->name;
}
}$p=new Say('hello','gouzao');比如我这个类,我已经在构造方法里面初始化了我的属性,那我很搞不懂,那我最上面声明的那2个属性,还有什么用,我删掉都不会影响我的程序, 如果这几个属性只是用来声明,告诉这个类中有哪些属性的仅仅这个作用的话,那么我是不是 如何使用的构造方法的话,所有属性在里面就可以进行初始化,那么我是不是 可以把那些声明的属性,全部定义为私有的属性,因为这些属性 仅仅只是用来说明而已 是不是这样的 请高手们为我解惑啊!谢谢了
public $title; function __construct($name,$title){ $this->name=$name;
$this->title=$title; }
function eat(){ return $this->name;
}
}$p=new Say('hello','gouzao');比如我这个类,我已经在构造方法里面初始化了我的属性,那我很搞不懂,那我最上面声明的那2个属性,还有什么用,我删掉都不会影响我的程序, 如果这几个属性只是用来声明,告诉这个类中有哪些属性的仅仅这个作用的话,那么我是不是 如何使用的构造方法的话,所有属性在里面就可以进行初始化,那么我是不是 可以把那些声明的属性,全部定义为私有的属性,因为这些属性 仅仅只是用来说明而已 是不是这样的 请高手们为我解惑啊!谢谢了
你的方法就错误了: function eat(){ return $this->name;
}
因为,你的public属性是你的类提供给外界的一个接口, 这样别人可以一目了然地看见他可以操作那些属性,想想,如果你的construct不是只有两行,而是200行,别人如何能一眼看见你这里有个->name可以直接引用?
public $title; function __construct($name,$title){ $this->name=$name;
$this->title=$title; }
function eat(){ return $this->name;
}
}$p=new Say('hello','gouzao');
echo $p->eat()."<br/>";
$p->name="world";
echo $p->eat()."<br/>";