广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php中的魔术方法有哪些及怎么用
  • 787
分享到

php中的魔术方法有哪些及怎么用

2023-06-30 03:06:11 787人浏览 独家记忆
摘要

这篇文章主要讲解了“PHP中的魔术方法有哪些及怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中的魔术方法有哪些及怎么用”吧!php中魔术方法详解,在php中有一类方法,很奇怪常,

这篇文章主要讲解了“PHP中的魔术方法有哪些及怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中的魔术方法有哪些及怎么用”吧!

php中的魔术方法有哪些及怎么用

php中魔术方法详解,在php中有一类方法,很奇怪常,那就是只要满足一定条件,就会自己执行,那就是php中的魔术方法,

一、__construct构造方法

  • 当类被实例化的时候就会调用

  • 简单来说,就是new一个类的时候,这个方法就会自动执行

<?phpclass autofelix {    public function __construct()    {        echo '我是类autofelix';    }}new autofelix();//即可输出:我是类autofelix

二、 __destruct析构方法

  • 当类被销毁时候自动触发

  • 可以使用unset方法触发该方法

<?phpclass autofelix {    public function __destruct()    {        echo '我准备销毁你了';    }}$a = new autofelix();unset($a);//即可输出:我准备销毁你了

三、 __clone克隆方法

  • 当类被克隆时自动会自动调用

<?phpclass autofelix {    public function __clone()    {        echo '我克隆了你';    }}$a = new autofelix();clone $a;//即可输出:我克隆了你

四、__call非静态调用方法

  • 当要调用的方法不存在或者权限不足时候会自动调用

  • 比如我在类的外部调用类内部的private修饰的方法

<?phpclass autofelix {    private function say()     {        echo 'hello, 我是autofelix';    }    public function __call($name, $arguments)    {        echo '你无权调用' . $name . '方法';        die;    }}$a = new autofelix();$a->say(); //按理说应该报错//即可输出:你无权调用say方法

五、__callStatic静态调用方法

  • 当要调用的静态方法不存在或者权限不足时候会自动调用

  • 比如我在类的外部调用类内部的private修饰的静态方法

<?phpclass autofelix {    private static function say()     {        echo 'hello, 我是autofelix';    }    public function __callStatic($name, $arguments)    {        echo '你无权调用' . $name . '方法';        die;    }}$a = new autofelix();$a::say(); //按理说应该报错//即可输出:你无权调用say方法

六、__debugInfo打印方法

  • 该方法会在var_dump()类对象时候被调用

  • 如果没有定义该方法,var_dump()将会打印出所有的类属性

<?phpclass autofelix {    public function __debugInfo()    {        echo '你看不到我任何信息的~';    }}var_dump(new autofelix());//即可输出:你看不到我任何信息的~

七、__get获取成员属性方法

  • 通过它可以在对象外部获取私有成员属性

<?phpclass autofelix {    private $name = 'autofelix';    public function __get($name)    {        if(in_array($name, ['name', 'age'])) {           echo $this->name;        } else {            echo '不是什么东西都能访问的~';        }    }}$a = new autofelix();$a->name;//即可输出:autofelix

八、__isset方法

  • 当对不可访问的属性调用isset()或则会empty()时候会被自动调用

<?phpclass autofelix {    private $name = 'autofelix';    public function __isset($name)    {        if(in_array($name, ['name', 'age'])) {           echo $this->name;        } else {            echo '不是什么东西都能访问的~';        }    }}$a = new autofelix();isset($a->name);//结果: autofelix

九、__set方法

  • 给一个未定义的属性赋值时候会被触发

<?phpclass autofelix {    public function __set($name, $value)    {        echo '你想给' . $name . '赋值' . $value;    }}$a = new autofelix();$a->name = 'autofelix';//结果: 你想给name赋值autofelix;

十、__invoke方法

  • 对象本身不能直接当函数用

  • 如果对象被当作函数调用就会触发该方法

<?phpclass autofelix {    public function __invoke()    {        echo '你还想调用我?';    }}$a = new autofelix();//对象直接当函数调用$a();//结果: 你还想调用我?

十一、__sleep方法

  • 当在类的外部调用serialize()时会自动被调用

<?phpclass autofelix {    public function __sleep()    {        echo '弄啥嘞~';    }}$a = new autofelix();serialize($a);//结果: 弄啥嘞~

十二、__toString方法

  • 当一个类被当作字符串处理时应该返回什么

  • 这里必须返回一个string类型不然会报致命错误

<?phpclass autofelix {    public function __toString()    {        return '我是你得不到的对象...';    }}$a = new autofelix();echo $a;//结果: 我是你得不到的对象...

十三、__unset方法

  • 当对不可访问的属性调用unset()时会被自动调用

<?phpclass autofelix {    private $name = 'autofelix';    public function __unset($name)    {        echo '想删我? 你也配?';    }}$a = new autofelix();unset($a->name);//结果: 想删我? 你也配?

十四、__wakeup方法

  • 当执行unserialize()方法时会被自动调用

<?phpclass autofelix {    public function __wakeup()    {        echo '又想弄啥嘞~';    }}$a = new autofelix();unserialize($a);//结果: 又想弄啥嘞~

感谢各位的阅读,以上就是“php中的魔术方法有哪些及怎么用”的内容了,经过本文的学习后,相信大家对php中的魔术方法有哪些及怎么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: php中的魔术方法有哪些及怎么用

本文链接: https://www.lsjlt.com/news/327219.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php中的魔术方法有哪些及怎么用
    这篇文章主要讲解了“php中的魔术方法有哪些及怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中的魔术方法有哪些及怎么用”吧!php中魔术方法详解,在php中有一类方法,很奇怪常,...
    99+
    2023-06-30
  • php魔术方法有哪些及怎么使用
    这篇文章主要介绍“php魔术方法有哪些及怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php魔术方法有哪些及怎么使用”文章能帮助大家解决问题。PHP中以双下划线“__”开始命名的内置方法被称...
    99+
    2023-07-04
  • PHP有哪些魔术方法
    这篇文章主要为大家展示了“PHP有哪些魔术方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP有哪些魔术方法”这篇文章吧。PHP是一门非常优秀的脚本编程语言,与其它编程语言有一个非常不同的地...
    99+
    2023-06-04
  • php中魔术方法都有哪些
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在面向对象编程中,PHP 提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利,在 PHP 中的作用是非常重要的。PHP 中的魔术方法通常以__(两个下划线)开始,...
    99+
    2021-12-03
    php 魔术方法
  • php语言中有哪些魔术方法
    这篇文章主要介绍php语言中有哪些魔术方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php魔术方法有:“__set()”、“__get()”、“__isset()”、“__unset()”、“__sleep()”...
    99+
    2023-06-22
  • 常见的PHP魔术方法类有哪些
    这篇文章主要讲解了“常见的PHP魔术方法类有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常见的PHP魔术方法类有哪些”吧!__construct()方法__construct()方法是...
    99+
    2023-07-05
  • python中有哪些常用的魔术方法
    这篇文章将为大家详细讲解有关python中有哪些常用的魔术方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比...
    99+
    2023-06-14
  • PHP的魔术方法怎么用
    本篇内容介绍了“PHP的魔术方法怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在PHP中,以双下划线(__)开始命名的方法被称作PHP...
    99+
    2023-06-30
  • php中有哪些魔幻方法
    今天就跟大家聊聊有关php中有哪些魔幻方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。魔幻方法有:“__construct()”、“__destruct()”、“__set()”、...
    99+
    2023-06-20
  • php魔术方法有什么用
    这篇文章将为大家详细讲解有关php魔术方法有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php魔术方法的作用:1、【__construct()】实例化对象时自动调用;2、【__destruct()...
    99+
    2023-06-06
  • Python中的魔法方法有哪些
    Python中的魔法方法:1.__del__方法常用于明确销毁某个对象;2.__init__()方法常用于初始化实例对象;3.__new__()方法可以定义一个对象的初始化操作;Python中的魔法方法有以下几种__del__方法__del...
    99+
    2022-10-20
  • 常用的Python魔法方法有哪些
    这期内容当中小编将会给大家带来有关常用的Python魔法方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、算数运算符的魔法方法python2.2以后,对类和类型进行了统一,做法就是讲int()、...
    99+
    2023-06-15
  • PHP中常用的魔术方法总结
    目录构造方法 / __construct析构方法 / __destruct克隆方法 / __clone非静态调用方法 / __call静态调用方法 / __callStatic打印方...
    99+
    2022-11-13
  • php中的魔术方法是什么意思
    这篇文章主要介绍“php中的魔术方法是什么意思”,在日常操作中,相信很多人在php中的魔术方法是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中的魔术方法是什么意思”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • php反序列化魔术方法怎么使用
    在PHP中,反序列化是通过魔术方法__wakeup()来实现的。__wakeup()方法会在反序列化对象时自动调用。 使用魔术方法_...
    99+
    2023-10-22
    php
  • php中魔术方法__get()和__set()的作用
    这篇文章将为大家详细讲解有关php中魔术方法__get()和__set()的作用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。“__set()”在给未定义的属性赋值时自动调用,语法“public func...
    99+
    2023-06-20
  • PHP中常用的魔术方法(总结分享)
    本篇文章给大家带来了关于PHP的相关知识,PHP把所有”__”开头的方法当做魔术方法,下面主要为大家介绍了PHP中常用的几个魔术方法,文中示例代码讲解详细,需要的可以参考一下。(推荐教程:PHP视频教程)构造方法 / __construct...
    99+
    2022-09-05
  • jQuery中Ajax的方法有哪些及怎么使用
    这篇文章主要介绍“jQuery中Ajax的方法有哪些及怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jQuery中Ajax的方法有哪些及怎么使用”文章能帮助大家解决问题。一、Ajax 的优势...
    99+
    2023-06-29
  • php中魔术方法call指的是什么意思
    这篇文章主要介绍php中魔术方法call指的是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php __call是php魔术方法中的一个,当程序调用到当前类中未声明或没权限调用的方法时,就会调用__call方...
    99+
    2023-06-15
  • Python中有哪些常用的魔法命令
    这篇文章给大家介绍Python中有哪些常用的魔法命令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。基础常识 ?和?? ->例:%matplotlib、%matplotlib后缀为可以获取一个对象的相关信...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作