首页 > 开发 > PHP > 正文

PHP之十六个魔术方法详细介绍

2024-05-04 22:51:32
字体:
来源:转载
供稿:网友

PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括:

__construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用 __isset(),当对不可访问属性调用isset()或empty()时调用 __unset(),当对不可访问属性调用unset()时被调用。 __sleep(),执行serialize()时,先会调用这个函数 __wakeup(),执行unserialize()时,先会调用这个函数 __toString(),类被当成字符串时的回应方法 __invoke(),调用函数的方式调用一个对象时的回应方法 __set_state(),调用var_export()导出类时,此静态方法会被调用。 __clone(),当对象复制完成时调用 __autoload(),尝试加载未定义的类 __debugInfo(),打印所需调试信息

范例

下面让我们以实例的形式向大家讲解下这几个魔术方法时如何使用的。

一、 __construct(),类的构造函数

php中构造方法是对象创建完成后第一个被对象自动调用的方法。在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法。

1、 构造方法的作用

通常构造方法被用来执行一些有用的初始化任务,如对成员属性在创建对象时赋予初始值。

2、 构造方法的在类中的声明格式

function __constrct([参数列表]){  方法体 //通常用来对成员属性进行初始化赋值}

3、 在类中声明构造方法需要注意的事项

1、在同一个类中只能声明一个构造方法,原因是,PHP不支持构造函数重载。

2、构造方法名称是以两个下画线开始的__construct()

下面是它的例子:

<?php  class Person  {                                         public $name;          public $age;          public $sex;                                         /**     * 显示声明一个构造方法且带参数     */                                                public function __construct($name="", $sex="男", $age=22)    {         $this->name = $name;      $this->sex = $sex;      $this->age = $age;    }        /**     * say 方法     */    public function say()    {       echo "我叫:" . $this->name . ",性别:" . $this->sex . ",年龄:" . $this->age;    }                                                  }

创建对象$Person1且不带任参数

$Person1 = new Person();echo $Person1->say(); //输出:我叫:,性别:男,年龄:27

创建对象$Person2且带参数“小明”

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表