一说到php魔术方法,最先想到的就是构造和析构函数,那么,他们到底有什么神奇的地方,而被称为魔术方法,并被当做代表人物呢

以前,我也只是知道一些理论知识,今天,就和大家一起分析一下它们到底有什么作用:

一. 构造函数:

__construct( ): 有构造函数的类会在每次创建新对象时调用此函数,所以可以在此函数内做一些使用对象之前的初始化。

我最早接触到这个函数是在写登录的时候,会在公共控制器里创建一个构造函数,里面写验证登录session是否存在的逻辑代码,然后在每个控制器都继承这个公共控制器,会首先执行这个构造函数验证是否登录成功。(如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。)

二.析构函数:

__distruct( ): 1、PHP页面加载完成后,2、unset()类,3、变量指向别的对象或值时,4、exit()时被调用。

当PHP决定你的脚本不再与对象相关时,析构函数将被调用

<?phpclass Person{ //定义一个叫Person的类public  $name; //声明共有的属性:名字public function say(){ //声明共有的方法:说话echo 'saying';}       public function __construct(){ //固定的__construct声明构造函数echo 'construct'; //在对象创建时输出}public function __destruct(){echo 'destruct'; //对象销毁时输出}
}$a =new Person(); //输出construct//待代码结束后输出 destruct
?>

php构造函数和析构函数到底干嘛用的相关推荐

  1. 构造函数与析构函数到底做了啥?

    2019独角兽企业重金招聘Python工程师标准>>> 构造函数的作用: 创建并初始化对象,以及类型转换(比如隐式类型转换),以及填充虚表指针  构造函数仅能被创建一次(一般情况,除 ...

  2. php中的构造函数和析构函数,php 中构造函数和析构函数

    构造函数: 在对象实例化时被调用,一个类中只能有一个构造函数,在类中起初始化的作用. 析构函数: 在对象结束时被自动调用. 话不多说,用一段代码来说明两者的区别: //定义一个类 class Pers ...

  3. C++构造函数与析构函数

    几乎所有的面向对象的编程语言都保护构造函数与析构函数,好学者就要举手了,啥情况啊,Java里面不就没有析构函数嘛.好吧,你问倒我了,不过可以认为Java的垃圾自动回收机制实现了对象析构的功能.管他呢, ...

  4. c++ -- 构造函数与析构函数

    一.构造函数的介绍    1. 构造函数的作用        构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建对象时, 对象会自动调用它的构造函数.一般来说, 构造函数有以下三个 ...

  5. new操作符到底干了什么?

    前几天无意间发现了刚开始学JavaScript时在知乎写的一些回答,有一个就是讲new操作符到底干了什么.从现在的视角看我当时的回答虽然是正确的,但是在对原理的剖析和细节的理解上还相去甚远.所以借此机 ...

  6. 【黑马程序员 C++教程从0到1入门编程】【笔记4】C++核心编程(类和对象——封装、权限、对象的初始化和清理、构造函数、析构函数、深拷贝、浅拷贝、初始化列表、友元friend、运算符重载)

    黑马程序员C++教程 文章目录 4 类和对象(类属性[成员属性],类函数[成员函数]) 4.1 封装 4.1.1 封装的意义(三种权限:public公共.protected保护.private私有)( ...

  7. 构造函数和析构函数能否声明为虚函数?

    构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数. 不建议在构造函数和析构函数里面调用虚函数. 构造函数不能声明为虚函数的原因是: 解释一:所谓虚函数就是多态情况下只执行 ...

  8. C++ 类和对象(二):构造函数、析构函数、拷贝构造函数、运算符重载

    构造函数 析构函数 拷贝构造函数 运算符重载 class Date {}; 可以看到,上面那个类没有任何成员,是一个空类,但是它真的什么都没有吗?其实一个类在我们不写的情况下,都会生成6个默认的成员函 ...

  9. 类的6个默认成员函数:构造函数、析构函数、拷贝构造函数、重载运算符、三/五法则

    文章目录 6个默认成员函数 构造函数 概念 默认构造函数的类型 默认实参 概念 默认实参的使用 默认实参声明 全局变量作为默认实参 某些类不能依赖于编译器合成的默认构造函数 第一个原因 第二个原因 第 ...

最新文章

  1. composer PHP Fatal error: Allowed memory size of 报错解决
  2. three.js 贴图只显示颜色_C4D作品“花里胡哨”?我怀疑你贴图方式有问题……
  3. iOS开发 - OC - block的详解 - 深入篇
  4. QT-QT简介,QT环境与工具链(day1)
  5. boost源码剖析之:boost::multi_array
  6. 关于页面文件路径的问题
  7. 女人选择安逸一点还是拼搏一点
  8. OPNET网络仿真分析-1.3、基础概念
  9. 动态瑜伽 静态瑜伽 初学者_使用计算机视觉对瑜伽姿势进行评分
  10. mysql 当前时间的一周后_mysql查询当前时间,一天内,一周,一个月内的sql语句...
  11. html签到页面的代码,签到页面.html
  12. 3、那智机器人手柄各操作键的功能
  13. html怎么设置展开li,html网页代码常用ul li列表布局标签。
  14. iOS 性能优化(包体积优化、内存优化、流畅性优化、启动优化、耗电优化)
  15. [IMX6Q]u-boot_v2009.08编译过程
  16. 【破事氵】在Linux环境中让程序在后台运行
  17. 升降横移式立体车库设计(设计说明书+CAD图纸+开题报告+任务书+外文翻译+答辩相关材料)
  18. 昨天睡眠质量记录70分
  19. 洛谷P5071 [YNOI2015]此时此刻的光辉 莫队+玄学优化+卡常QWQ
  20. 360网站卫士SQL注入绕过案例一个

热门文章

  1. Java 局域网IP地址扫描
  2. python语法入门到面向过程编程(一)
  3. Visual Studio解决方案目录下各个文件的作用(2005+)
  4. 外汇量化交易是什么?使用量化交易有哪些隐藏风险?
  5. mysql查询course_MySQL查询练习
  6. discuz mysql 优化_MySQL针对Discuz论坛程序的基本优化教程
  7. python是最好的语言表情包_Python语言学习之如何通过Python用表情包自动回复微信拍一拍...
  8. Unity自定义UI组件(一)函数图篇(上)
  9. flutter报错Navigator operation requested with a context that does not include a Navigator
  10. java设置铃声_在Android 7(API 24级)中,我的应用不允许静音手机(将铃声模式设置为静音)...