在类中自定义构造方法的基本语法:
//php5这样
[修饰符]function __construct([参数列表]){ }
//php4 这样
[修饰符]function 类名([参数列表]){ }
看个列子就很好理解了:
<?php class Person{ public $name; public $age; //构造方法 php5 public function __construct($name,$age){ $this->name=$name; $this->age=$age; } //构造方法 php4 写在这里是php5为了兼容PHP4 public function Person($name,$age){ $this->name=$name; $this->age=$age; } } $p1=new Person("老大",27); echo $p1->name; $p1=new Person("小二",26); $p1=new Person("小三",24); ?>
注意地方:
$this 的理解:
1、$this 本质可以理解就是这个对象的地址
2. 哪个对象使用到$this, 就是哪个对象地址
3. $this不能在类外部使用
对构造方法的理解:
- 构造方法名和类名相同(php4版),php5版的构造方法名可以和类名相同,也可以是__construct()
- 构造方法的默认访问修饰符是public,同时构造方法没有返回值
- 创建新对象成功后,系统自动的调用该类的构造方法
- 一个类有且只有一个构造方法,在php5后虽然__construct() 和 类名() 可以共存,但是实际上也只能使用一个。
- 如果没有给类自定义构造方法,则该类使用系统默认的构造方法。
- 如果给类自定义了构造方法,则该类的默认构造方法被覆盖。