今日重点:构造函数
构造函数 __construct()
class Human { public $name = '李四'; public $gender = '男'; } $a = new Human(); $b = new Human(); $c = new Human(); echo $a->name,'<br />'; echo $b->name,'<br />'; echo $c->name,'<br />'; echo $a->gender,'<br />'; echo $b->gender,'<br />'; echo $c->gender,'<br />';在上面的例子中, 体现出类是模板,对象根据模板造出的实例.但是,模板是固定的. 因此,导致造出来的对象,各种属性值都一样.这显示与现实生活中的逻辑不符. 比如: 新生儿,性别,姓名,体重,这些都不一样. 同一个模板,不同的对象 这就是一对矛盾?
为什么新生儿有的是男,有的是女? 答:因为,染色体不一样. x,y ->男 x,x–>女 造对象时,传x染色体,还是y染色体,都有可能 这就说明创建对象时,可以传参 -》这就引出来了构造函数的必要了
在类中, 有一个构造函数,,就是用来初始化对象用的. 利用构造函数,你有机会操作对象,并改变他的值
构造方法的作用时机: 每当new一个对象,就会自动新new出来的对象发挥作用
new ClassName($args);
args参数原样传给构造方法;然后构造方法,用参数来影响新创建的对象当然:newClassName()也可以不传参但注意: args要与构造方法里的参数一致.
//构造函数在生成对象的时候执行 class Human { public function __construct() { echo '紫微星下凡了!'; } public $name = null; public $gender = null; } $a = new Human(); // 构造函数的传参,并影响对象 class Human { public function __construct($name,$gender) { $this->name = $name; $this->gender = $gender; } public $name = null; public $gender = null; } $a = new Human('张飞','男'); $b = new Human('空姐','女'); $c = new Human('孙二娘','女'); $d = new Human(); echo $a->name,'<br />'; // 张飞 echo $b->name,'<br />'; // 空姐 echo $c->name,'<br />'; // 孙二娘