php__construct()方法是什么,怎么用的?

PHP / 1210人浏览 / 0人评论

PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。

PHP5中的特殊方法

在php中内置了一些特书的方法,这些特殊方法被称之为魔术方法,其也有特殊的命名规则,以“__”双下划线开头的方法和函数名,所以我们自定义的函数不应该用双下划下开头,目的是为了区分魔术方法。

PHP魔术方法有哪些呢?

__construct()__autoload()__destruct()__call()__callStatic()__get()
__set()__isset()__unset()__sleep()__wakeup()__toString()__invoke()__set_state()__clone()__debugInfo() 等方法在 PHP 中被称为魔术方法(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。

php__construct()概述

construct翻译:建造、组成等,所以__construct()称为构造函数,如果是在PHP5之前的版本(php3、php4)中, 所谓的构造函数是和与其所在类同名的函数,所以在PHP5中也是支持和php3、php4中同样的用法,但是推荐使用__construct()作为类的构造函数,好处就是构造函数不需要随着类名的改变而做出改变,然而在PHP7.*中已经废弃PHP3、PHP4中的用法,构造函数必须使用__construct()来定义。
那构造函数是如何执行的呢?当一个对象被创建的时侯,类中的构造函数是被自动调用的第一个函数,而且一个类中只能存在一个构造函数,与普通函数类似,构造函数同样可以带有参数,如果构造函数带有参数,那在实例化同样需要传入相应的参数,如new Person($name, $sex)。

php__construct()演示示例

如何定义构造函数的语法,如下:

public function __construct($arg,$arg,$arg,$arg,......){
    //代码块
}

其中$arg,$arg,$arg,$arg,......为参数列表,不需要参数的时候可以省略。
假如你在类中没有显式地声明构造函数,类中会默认存在一个没有参数列表并且内容为空的构造函数,如果显式地声明构造函数,则类中的默认构造方法将不会存在,构造函数用来做初始化工作,类如为某些参数赋值等。当显式地声明构造函数,其访问权限必须是public,而且构造函数是在实例化时自动调用的,无需手动调用。

php__construct()演示示例

<?php
class Person{
        public $name, $age, $sex;
        public function __construct($arga, $argb, $argc){
            $this -> name  = $arga;
            $this -> age   = $argb;
            $this -> sex   = $argc;
            $this -> show_infor();
        }
        public function show_infor(){
            echo '姓名:'.$this -> name.'<br>';
            echo '年龄:'.$this -> age.'岁。<br>';
            echo '性别:'.$this -> sex.'<br>';
        }
    }
    $object = new Person('小明', 22, '男');
    //输出
    //姓名:小明
    //年龄:22岁
    //性别:男
?>

从上面案例中看出,实例化(new)的时候,就自动调用了__construct()构造函数。

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我