PHP 魔术方法 - 构造函数 __construct()

PHP 构造函数 ( __construct() ) 是对象被创建后自动调用的第一个方法。

任何类都有一个构造函数,即使我们没有显式的声明它,因为任何类都有一个默认的构造函数,这个默认的构造函数没有参数,也不会执行任何代码,可以说是一个空函数

一旦我们显式的声明了一个构造函数,那么默认的构造函数就会消失,也可以说是我们创建的构造函数把它屏蔽了

构造函数 __construct() 的作用

构造函数通常用于执行一些初始化任务,例如在创建对象时设置成员变量的初始值

声明构造函数

在类中声明一个构造函数的语法格式一般如下

<?php

class ClassName {

    function __constrct([parameter list]){

        // 函数主体,通常用于初始化对象的一些属性
    }
}

需要注意的是:一个 PHP 中只能有一个构造函数 __construct() ,因为 PHP 不允许函数重载

范例

下面的代码声明了一个类 Person 、同时为该类创建了一个构造函数 __construct() 。该构造函数接受三个参数: 名字、性别和年龄,同时设置相应的对象属性

<?php

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

    /**
     * 显式声明一个构造函数,同时初始化对象的属性
     */                                                                                       
    public function __construct($name="", $sex="Male", $age=22)
    {     
        $this->name = $name;
        $this->sex = $sex;
        $this->age = $age;
    }

    /**
     * say() 方法
     */
    public function say()
    {
        echo "Name:" . $this->name . ",Sex:" . $this->sex . ",Age:" . $this->age;
    }   

}

不传递参数来构造一个 Person 对象

因为 Person 构造函数 __construct() 的三个参数都设置了默认值,所以我们创建 Person 对象时也可以不传递参数

<?php

$person1 = new Person();
echo $Person1->say(); 

输出结果如下

Name:,Sex:Male,Age:22

只传递名称参数来构造一个 Person 对象

<?php

$person_yufei = new Person("Yufei");
echo $person_yufei->say(); 

输出结果如下

Name: Yufei, Sex: Male, Age: 22

同时传递参数名称、性别、年龄来构造一个 Person 对象

<?php

$person_hero= new Person ("Hero", "Male", 25);
echo $person_hero->say(); 

输出结果如下

Name: Hero, Sex: Male, Age: 25
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.