PHP 13 个常用魔术方法:

__construct__destruct__call 或 __callStatic__get__set__isset__unset__toString__clone__autoload__invoke__sleep__wakeup

1. __construct 构造方法

__construct 构造方法,当一个类被实例化创建对象时,会调用构造方法。


2. __destruct 析构方法

__destruct 析构方法, 当对象在销毁之前或失去对对象的引用时,会调用 析构方法。


3. __call 或 __callStatic

当调用一个未定义的或没有权限的成员方法时,会调用 __call 方法。(当在静态方法中调用一个未定义的或没有权限的成员方法时,则会调用 __callStatic 方法。)

如果本类找不到调用的成员方法,会去父类中找。

如果本类找不到 __call 方法,会去父类中找。


4. __get

当调用一个未定义的或非公有的成员属性时,会调用 __get 方法。


5. __set

当给一个未定义的或非公有的成员属性赋值时, 会调用 __set 方法。


6. __isset

当在一个未定义的或非公有的成员属性上调用 isset函数时,会调用 __isset 方法。


7. __unset

当在一个未定义或非公有的成员属性上调用 unset函数时,会调用 __unset 方法。


8. __toString

在打印输出一个对象时, 会自动调用 __toString 方法。 例: echo 对象名


9. __clone

当克隆一个对象时, 会自动调用 __clone 方法。 例: $clone_obj = clone 对象名;


10. __autoload

在实例化一个尚未被定义的类时会自动调用 __autoload 来加载类文件。


11. __invoke

当尝试以调用函数的方式调用一个对象时, 会自动调用 __invoke 方法。


12. __sleep

serialize() 函数会检查类中是否存在 __sleep 方法,如果存在,先执行 __sleep 方法,再执行 序列化操作。

<?phpclass User{public function __sleep(){// }}$obj = new User();serialize($obj);

13. __wakeup

unserialize() 函数会检查类中是否存在 __wakeup 方法,如果存在,先执行 __wakeup 方法,再执行 反序列化操作。

<?phpclass User{public function __wakeup(){// }}$obj = new User();unserialize($obj);

PHP基础知识 - PHP魔术方法相关推荐

  1. 魔术方法php擎的区别,PHP基础知识之魔术方法

    Linux常用命令02 显示当前目录 pwd         (print working directory)   显示当前目录 创建目录 mkdir       (make directory) ...

  2. 转移印花技术基础知识及应用方法

    转移印花技术基础知识及应用方法 1. 转移印花法特点 转移印花图案具有花型逼真.花纹细致.层次清晰.立体感强等特点,可印制自然风景及艺术性强的图案. 转移印花设备具有结构简单.占地小.投资少.经济效率 ...

  3. 计算机硬件基础知识txt,计算机硬件基础知识及使用方法简介

    --------------------------------------------------正文内容开始-------------------------------------------- ...

  4. 计算机硬件的使用知识,计算机硬件基础知识及使用方法简介.doc

    计算机硬件基础知识及使用方法简介.doc PAGE PAGE 1 计算机硬件基础知识及使用方法简介 1.1 计算机的发展历程 现代电子计算机技术的飞速发展,离不开人类科技知识的积累,离不开许许多多热衷 ...

  5. php如何在特定情况下触发,php类知识点滴---魔术方法,系统在特定时机触发的方法...

    __get()获取私有或受保护属性时调用的方法 class coach { private $chairfit = "徐晓冬"; public function __constru ...

  6. blendShape基础知识与创建方法

    由于本人最近一直在研究MetaHuman的blendShape,所以想要将了解到的知识整理汇总,也是为了学习到更多的知识,特此写了这篇文章,希望大家共同进步[ps.1].注意,阅读本文需要掌握一定的M ...

  7. 人工智能基础——知识的表示方法,语义网络表示方法

    语义网络 以个体为中心的组织知识的语义联系 实例联系 泛化联系 聚集联系 属性联系 以谓词或关系为中心组织知识的语义联系 以关系(谓词)为中心组织知识的语义联系 连接词在语义网络中的表示方法 合取 析 ...

  8. 软件测试基础知识-测试用例设计方法

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 黑盒测试: 1.等价类划分 等价类划分是将系统的输入 ...

  9. scrapy基础知识之 parse()方法的工作机制思考:

    1.因为使用的yield,而不是return.parse函数将会被当做一个生成器使用.scrapy会逐一获取parse方法中生成的结果,并判断该结果是一个什么样的类型: 2.如果是request则加入 ...

最新文章

  1. 08:Python数据分析之pandas学习
  2. 服务器状态显示down,Eureka心跳健康检查机制和Spring boot admin 节点状态一直为DOWN的排查(忽略某一个节点的健康检查)...
  3. 从小白到年薪10万+,优秀的数据分析能力如何速成?
  4. L1-070 吃火锅 (15 分)-PAT 团体程序设计天梯赛 GPLT
  5. Lodash chain功能(Lazy Evaluation)介绍
  6. Node.js简介与架构
  7. 安装CentOS7操作系统
  8. 开心网(kaixin001)上的X世界小游戏
  9. 布朗运动 1 | 基本概念与性质
  10. 手机用计算机解锁,如何用电脑解锁手机屏幕
  11. c语言中primesum函数,c语言之函数
  12. Bulletproof零知识证明
  13. windows 电脑图片/视频不展示预览图
  14. 浪漫侧影 ( 题解 )
  15. 火影忍者的最爱:三勾玉
  16. 实习,内推,校招,社招的区别和联系
  17. NFV落地开花,CT厂商渐获运营商青睐
  18. Android安装失败,安装包解析出错
  19. 医院计算机管理员自我鉴定,网络管理员个人自我鉴定
  20. 系统稳定性指标计算器

热门文章

  1. 2.redis高可用-持久化-主从复制-哨兵-cluster集群概述与部署,内容依旧多看完直接通透!
  2. 项目经理主要工作及指引
  3. 一看就懂-【c语言】可变数组的实现与缺陷分析
  4. 可变数组ArrayBuffer和不可变数组Array
  5. RGB-D salient object detection: A survey 综述
  6. 如何快速get新技能
  7. 央行宣布加快法定数字货币研发
  8. 数据分析实战(五):Python 数据清洗 —— XX
  9. 模型构建器之提取水系
  10. python两个list取交集_使用 Python 获取两个列表的交集、并集、差集的常用方法 | Jin''''s Blog...