加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP之十六个魔术方法详解

发布时间:2016-10-29 12:16:49 所属栏目:PHP教程 来源:segmentfault
导读:副标题#e# 前言 PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStat
副标题[/!--empirenews.page--]

 PHP之十六个魔术方法详解

前言

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

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

范例

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

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

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

1、 构造方法的作用

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

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

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

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

  • 在同一个类中只能声明一个构造方法,原因是,PHP不支持构造函数重载。
  • 构造方法名称是以两个下画线开始的__construct() 

下面是它的例子:

  1. <?php 
  2.     class Person 
  3.     {                                                                       
  4.             public $name;         
  5.             public $age;         
  6.             public $sex;         
  7.                                                                   
  8.         /** 
  9.          * 显示声明一个构造方法且带参数 
  10.          */                                                                                        
  11.         public function __construct($name="", $sex="男", $age=22) 
  12.         {       
  13.             $this->name = $name; 
  14.             $this->sex = $sex; 
  15.             $this->age = $age; 
  16.         } 
  17.          
  18.         /** 
  19.          * say 方法 
  20.          */ 
  21.         public function say() 
  22.         {  
  23.             echo "我叫:" . $this->name . ",性别:" . $this->sex . ",年龄:" . $this->age; 
  24.         }    
  25.                                                                                             
  26.     }  

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读