PHP构造方法和析构函数
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
例:创建一个类,初始化创建的类
class p{ //定义变量 public $name; public $sex; public $age; } //赋值 $a1 = new p(); $a1->name = '张三'; $a1->sex = '男'; $a1->age = 20;
如果需要的变量很多,可以用构造函数来写,构造函数的作用就是用来初始化对象的。该方法可以没有参数,也可以有多个参数
定义构造函数:__construct(),注意的是函数construct前面是两个下划线"_".
class p{ public $name; //定义变量 public $age; public $sex; public $height; function __construct($name,$age,$sex,$height){ $this->name = $name; //为变量赋值 $this->age = $age; $this->sex = $sex; $this->height = $height; } function Play(){ if($this->height>175 || $this->age < 22){ return $this->name . "可以打篮球"; }else{ return $this->name . "不具备打球的条件"; } } } $Preson1 = new p("白白","20","女","180"); echo $$Preson1->Playl();
构造方法是初始化对象时使用的,如果没有构造方法,那么PHP会自动生成一个。自动生成的构造方法没有任何参数,没有任何操作。
析构方法:
1、析构方法是一个特殊的方法,名字为固定的词:_ _destruct
2、析构方法是在一个对象被“销毁”的时候会自动被调用的方法——我们无法调用它;
3、析构方法不能带参数(形参),但方法中也可以使用$this这个词,代表“当前对象”
析构方法没有返回值.
主要作用是释放资源.并不是销毁对象本身.
在销毁对象前,系统自动调用该类的析构方法.
.一个类最多只有一个析构方法.
class Person { public $name; public $age; //构造方法 function __construct($name,$age) { $this ->name = $name; $this ->age = $age; } //析构方法 function __destruct() { echo "姓名:".$this->name.", 年龄".$this->age."-->销毁<br />"; } } $p1= new Person("小小",18); $p2= new Person("大大",17);
结果:
姓名:小二, 年龄17-->销毁
姓名:小一, 年龄18-->销毁