php 魔术方法有哪些,作用是什么?

在面向对象编程中,php提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利。php中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发。这篇文章简单总结了php中提供的魔术方法。

php 魔术方法有哪些,作用是什么?

__construct()

__construct()是类的构造函数,是目前为止最经常使用的函数。在创建对象时,可以在构造函数中做一些初始化工作。可以为构造函数定义任意多个参数,只要在实例化时传入对应个数的参数即可。构造函数中出现的任何异常都会阻止对象的创建。

__desctruct()

__desctruct()是类的析构函数,通常在销毁对象或脚本执行结束时自动调用,析构函数不接收任何参数。经常在析构函数中执行一些清理工作,比如关闭数据库连接等。

立即学习“PHP免费学习笔记(深入)”;

__call()

__call()在调用不存在或不可访问的方法时会被调用。它接收两个参数,一个是调用的方法的名字,一个是包含函数参数的数组。我们可以使用这种方法调用子对象中得同名函数

__callStatic()

__callStatic()当调用的静态方法不存在或权限不足时会被调用。它接收两个参数,一个是调用的方法的名字,一个是包含函数参数的数组。其使用跟__call()完全一样。

__get()

__get()在我们尝试访问一个不存在的属性或者非公有属性时会被调用。它接收一个参数,该参数表示访问属性的名字,并且将该属性的值返回

__set()

__set()在我们尝试修改一个不可访问的属性时会被调用,它接收两个参数,一个表示属性的名字,一个表示属性的值。

__isset()

__isset()在对一个不可访问的属性调用isset()或empty()方法时会被调用,它接收一个参数,表示属性的名字。它应该返回一个布尔值,用来表示该属性是否存在。

__unset()

__unset()在调用 unset()函数销毁一个不能访问的属性时会被调用,它接收一个参数,表述属性的名字。

__sleep()

__sleep()在对一个对象序列化时(调用 serialize())会被调用。它不接收任何参数,而且应该返回一个包含所有应该被序列化的属性的数组。在该魔术方法中,也可以执行一些其他操作。

有一点要注意的是,不要再该函数中进行任何的析构操作,因为这可能会影响正在运行的对象

__wakeup()

__wakeup()在对存储的对象反序列化时会被调用。它不接收任何参数,也没有任何返回值。可以用它来处理在序列化时丢失的数据库连接或资源

__toString()

__toString()在我们将对象当作字符串一样使用时会被调用,它不接收任何参数。该方法允许我们定义对象的表现形式。

__invoke()

调用函数的方式调用一个对象时的回应方法

__set_state()

调用var_export()导出类时,此静态方法会被调用。

__clone()

__clone()可以解决上面的问题。当对一个对象使用 clone 关键字时,该魔术方法会被调用。

以上就是php 魔术方法有哪些,作用是什么?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2522695.html

(0)
上一篇 2025年3月5日 17:30:48
下一篇 2025年3月2日 14:43:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php有什么框架模式

    mvc mvc设计模式核心: 解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。 mvc各部分的功能: M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。 立即学习“PHP免费学…

    2025年3月5日
    200
  • php编程好学吗

    php编程语言对于新手而言,非常容易上手,不乏有很多人通过自学找到了高薪的工作。不管自学还是通过参加培训进行学习,php开发工程师是保持如何的晋级过程呢?如何考究自己学习过程中的实力水平? 阶段一:功能开发 (推荐学习:PHP视频教程) 最…

    2025年3月5日
    200
  • php和css哪个好?

    php和css是没有可比性的。php是服务器端语言,css是层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言,俗称客户端语言。 PHP是服务器语言,而CSS控制是页面…

    2025年3月5日
    200
  • php报错502badgateway怎么解决

    目前lnmp一键安装包比较多的问题就是502 bad gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。 解决办法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么…

    2025年3月5日
    200
  • php动态网页是什么意思?

    所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操…

    2025年3月5日
    200
  • php版本越高越好吗

    其实一直以来心中有个疑惑,php版本是不是越高越稳定,越高就越好呢?在一般情况下,版本越新越好,就拿wordpress来说在php7.0环境下比之前的版本速度提升在3倍左右。 目前PHP最高版本是7.x,然而我们一般使用的还是php5.3.…

    2025年3月5日
    200
  • php第三方库有哪些?

    php第三方库是除本地类库、系统类库以外的类库,需要后来安装,才能调用的类库。那么php第三方库有哪些?下面本篇文章就来给大家介绍一些好用的php第三方库,希望对大家有所帮助。 PHP 好用第三方库 whoops 更好的php错误报告库 【…

    2025年3月5日
    200
  • php的后缀名是什么?

    php(全称:php:hypertext preprocessor,即“php:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入html中使用。 php的后缀名是什么? php文件后缀名就是.php,文件扩展名和…

    2025年3月5日
    200
  • php代码怎么优化?

    php代码怎么优化?下面本篇文章就来给大家介绍一些php代码优化的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 PHP代码优化 1、尽量静态化 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的…

    2025年3月5日
    200
  • php大小写敏感吗?

    开发php的过程中,因为命名大小写的问题容易导致代码错误,所以从网上整理了php的大小写敏感的一些资料,需要的朋友可以参考下。 PHP对大小写敏感问题的处理比较乱,写代码时可能偶尔出问题,所以这里总结一下。 但我不是鼓励大家去用这些规则。 …

    2025年3月5日
    200

发表回复

登录后才能评论