设计需求:
创建对象时,直接给对象的属性初始化。
特点:
1、没有返回值;
2、在创建一个类的新对象时,系统会自动调用该类的构造方法完成对新对象的初始化。
例:
<?php
class Person{
public $name;
public $age;
//构造方法,php5独有
public function__construct(){
echo“我是构造方法”;
}
}
$p1 = new Person();
?>
php中有两种构造方法的形式:
1、function 类名();
2、function __construct();
说明:第一种是php4中的定义方式,而第二种是php5中特有的构造方式,一般情况下两种都适用,但是当两种方法都存在的情况下,只第二种而第一种不被执行。两种形式都写时只是为了避免兼容性。
注:一个类中只能有一个构造方法(不能重载)。
this:一种指向当前变量地址的指针。
代码如图中左边所示,当声明变量“
p1”时,内存会为变量分配一个地址为0x1234的空间,此时"
this->name;”中的this将指向0x1234这个地址,并将值存在此处。
当声明p2这个变量时,内存为它分配0x3456的地址,此时的“$this->name;”将指向新的地址0x3456,如下图:
注意:this只能定义在类的内部。