php构造方法与析构方法

时间:2022-03-29 01:38:21
1. 构造方法
<?php
//构造方法 __construct() 是在实例化对象时被自动调用
//用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法)
//语法:[修饰符] function __construct(参数列表...){ }
// 构造方法方法格式:
// [修饰符] function __construct([参数]){
//     程序体
// }

class person{
    public $name;
    public $age;
    public $sex;

    public function __construct($n, $a, $s){
        $this -> name = $n;
        $this -> age = $a;
        $this -> sex = $s;
    }

    public function say(){
        echo "我的名字是:{$this -> name},我的年龄是:{$this -> age},我的性别是:{$this -> sex}";
    }
}

//实例化对象时要按构造方法的参数去传递对应的值
$person1 = new person("张三", 18, "男");

echo $person1 -> name;
echo "<br />";
echo $person1 -> age;
echo "<br />";
echo $person1 -> sex;
echo "<br />";
$person1 -> say();
?>

2. 析构方法
<?php
//析构方法,是对象在销毁时自动调用的
//脚本执行完之后,才会销毁对象

class person{

    public $name;
    public $age;
    public $sex;

    public function __construct($name, $age, $sex){

        $this -> name = $name;
        $this -> age = $age;
        $this -> sex = $sex;
    }

    public function say(){
        echo "say";
    }

    /*
    * 析构方法 __destruct() 是在对象被销毁时自动调用
    * 用途:可以进行资源释放操作或文件的关闭操作
    * 注意:栈内存的先进后出
    */
    public function __destruct(){
        echo "88{$this -> name}<br />";
    }
}

$person = new person("zhangsan", 18, "nv");
$person -> say();
echo "<br />";
$person1 = new person("lisi", 20, "nan");    //栈内存操作
person1 -> say();
?>