返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php 之魔术方法详解
  • 658
分享到

php 之魔术方法详解

php开发语言魔术方法面向对象经验分享 2023-08-31 16:08:33 658人浏览 泡泡鱼
摘要

✨ 目录 🎈 构造方法 / __construct🎈 析构方法 / __destruct🎈 克隆方法 / __cloneἸ

✨ 目录

🎈 构造方法 / __construct

  • 当类被实例化的时候就会调用
  • 简单来说,就是 new 一个类的时候,这个方法就会自动执行
PHPclass autofelix {    public function __construct()    {        echo '我是飞兔小哥~';    }}new autofelix();

🎈 析构方法 / __destruct

  • 当类被销毁时候自动触发
  • 可以使用 unset 方法触发该方法
phpclass autofelix {    public function __destruct()    {        echo '我是飞兔小哥,别销毁我~';    }}unset(new autofelix());

🎈 克隆方法 / __clone

  • 当类被克隆时自动会自动调用
class autofelix {    public function __clone()    {        echo '我是飞兔小哥,我想克隆你~';    }}$a = new autofelix();clone $a;

🎈 非静态调用方法 / __call

  • 当要调用的方法不存在或者权限不足时候会自动调用
  • 比如我在类的外部调用类内部的 private 修饰的方法
class autofelix {    private function say()     {        echo '我是飞兔小哥~';    }    public function __call($name, $arguments)    {        echo '你无权调用' . $name . '方法';        die;    }}(new autofelix())->say();

🎈 静态调用方法 / __callStatic

  • 当要调用的静态方法不存在或者权限不足时候会自动调用
  • 比如我在类的外部调用类内部的 private 修饰的静态方法
class autofelix {    private static function say()     {        echo '我是飞兔小哥~';    }    public function __callStatic($name, $arguments)    {        echo '你无权调用' . $name . '方法';        die;    }}$a = new autofelix();$a::say();

🎈 打印方法 / __debugInfo

  • 该方法会在 var_dump() 类对象时候被调用
  • 如果没有定义该方法,var_dump() 将会打印出所有的类属性
class autofelix {    public function __debugInfo()    {        echo '飞兔小哥给你温馨提示';    }}var_dump(new autofelix());

🎈 获取成员属性 / __get

  • 通过它可以在对象外部获取私有成员属性
class autofelix {    private $name = '飞兔小哥';    public function __get($name)    {        if(in_array($name, ['name', 'age'])) {           echo $this->name;        } else {            echo '不是什么东西都能访问的~';        }    }}(new autofelix())->name;

🎈 获取不可访问属性 / __isset

  • 当对不可访问的属性调用 isset() 或则会 empty() 时候会被自动调用
class autofelix {    private $name = '飞兔小哥';    public function __isset($name)    {        if(in_array($name, ['name', 'age'])) {           echo $this->name;        } else {            echo '不是什么东西都能访问的~';        }    }}isset(new autofelix()->name);

🎈 属性赋值 / __set

  • 给一个未定义的属性赋值时候会被触发
class autofelix {    public function __set($name, $value)    {        echo '你想给' . $name . '赋值' . $value;    }}(new autofelix())->name = '飞兔小哥';

🎈 调用对象本身 / __invoke

  • 对象本身不能直接当函数用
  • 如果对象被当作函数调用就会触发该方法
class autofelix {    public function __invoke()    {        echo '你想调用我?';    }}(new autofelix())();

🎈 序列化调用 / __sleep

  • 当在类的外部调用 serialize() 时会自动被调用
class autofelix {    public function __sleep()    {        echo '我是飞兔小哥~';    }}serialize(new autofelix());

🎈 反序列化调用 / __wakeup

  • 当执行 unserialize() 方法时会被自动调用
class autofelix {    public function __wakeup()    {        echo '我是飞兔小哥~';    }}unserialize(new autofelix());

🎈 输出字符调用 / __toString

  • 当一个类被当作字符串处理时应该返回什么
  • 这里必须返回一个 string 类型不然会报致命错误
class autofelix {    public function __toString()    {        return '我是你得不到的对象...';    }}$a = new autofelix();echo $a;

🎈 删除调用 / __unset

  • 当对不可访问的属性调用 unset() 时会被自动调用
class autofelix {    private $name = '飞兔小哥';    public function __unset($name)    {        echo '别删我,我是你兔哥';    }}$a = new autofelix();unset($a->name);

来源地址:https://blog.csdn.net/weixin_41635750/article/details/126584548

--结束END--

本文标题: php 之魔术方法详解

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

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

猜你喜欢
  • php 之魔术方法详解
    ✨ 目录 🎈 构造方法 / __construct🎈 析构方法 / __destruct🎈 克隆方法 / __cloneἸ...
    99+
    2023-08-31
    php 开发语言 魔术方法 面向对象 经验分享
  • python进阶之魔术方法详解
    目录一、三个内置函数二、双下划线开头和结尾的方法,叫魔术方法。总结一、三个内置函数 1、@classmethod–类名.属性名 2、@staticmethod&ndash...
    99+
    2024-04-02
  • php反序列化之魔术方法超详细讲解
    目录php魔术方法__construct()与__destruct()__call__get__set__isset__unset__sleep__wakeup__toString_...
    99+
    2022-11-13
    php反序列化魔术方法 php魔术方法
  • PHP函数的魔术方法
    PHP是一种基于C语言开发的服务器端脚本语言,它在Web开发中广泛应用。而函数是程序中最基本、最常用的组成部分之一,PHP也提供了许多与函数相关的魔术方法,可以帮助开发者更好地利用函数的优势。在本文中,我们将介绍PHP函数的魔术方法及其用法...
    99+
    2023-05-19
    函数 PHP 魔术方法
  • PHP有哪些魔术方法
    这篇文章主要为大家展示了“PHP有哪些魔术方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP有哪些魔术方法”这篇文章吧。PHP是一门非常优秀的脚本编程语言,与其它编程语言有一个非常不同的地...
    99+
    2023-06-04
  • python魔术方法之装饰器
    三个魔术方法:__get__()__set__()__delete__()object.__get__(self,实例名,owner)    #owner = 属主 ,instance = 属主类owner的实例object.__set__...
    99+
    2023-01-31
    魔术 方法 python
  • php中魔术方法是什么
    这篇文章主要介绍了php中魔术方法是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类中的魔术方法PHP 魔术方法指的是在某些时刻会自动被...
    99+
    2024-04-02
  • PHP的魔术方法怎么用
    本篇内容介绍了“PHP的魔术方法怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在PHP中,以双下划线(__)开始命名的方法被称作PHP...
    99+
    2023-06-30
  • 揭秘PHP中的魔术方法
    PHP 是开发 Web 应用程序时使用最广泛的编程语言之一。它的流行不仅源于其语法的简单性,还源于它为开发人员提供的灵活性。促成这种灵活性的一个关键特性是 PHP 中“魔术方法”的概念。魔术方法允许开发人员在其类中利用方法重载和数据封装的强...
    99+
    2023-10-22
    php 魔术方法
  • PHP入门指南:魔术方法
    PHP作为一种广泛应用的开发语言,具有着丰富的特性,它的魔术方法就是其中之一,本文将为大家介绍PHP中的魔术方法。一、什么是魔术方法?在PHP中,魔术方法是指一类可以自动调用的方法。这些方法使用特殊的名称,以双下划线(__)开头和结尾,并在...
    99+
    2023-05-20
    PHP 入门 魔术方法
  • php魔术方法有什么用
    这篇文章将为大家详细讲解有关php魔术方法有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php魔术方法的作用:1、【__construct()】实例化对象时自动调用;2、【__destruct()...
    99+
    2023-06-06
  • 详解Python魔法方法之描述符类
    描述符类要求: 描述符就是将某种特殊类型的类的实例指派给另一个类的属性 至少要实现以下的一个方法: •__get__(self, instance, owner) ...
    99+
    2024-04-02
  • Python魔方方法详解
    原文链接: https://fishc.com.cn/forum.phpmod=viewthread&tid=48793&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403 魔...
    99+
    2023-01-31
    魔方 详解 方法
  • Python 魔法方法详解
    据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切。 他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Py...
    99+
    2023-01-31
    详解 方法 魔法
  • php中魔术方法都有哪些
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在面向对象编程中,PHP 提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利,在 PHP 中的作用是非常重要的。PHP 中的魔术方法通常以__(两个下划线)开始,...
    99+
    2021-12-03
    php 魔术方法
  • php关闭魔术引号的方法
    这篇文章主要介绍php关闭魔术引号的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!关闭方法:在php.ini中将magic_quotes_gpc、magic_quotes_runtime、magic_quotes...
    99+
    2023-06-06
  • python深入讲解魔术方法
    目录一、python内置的基本魔术方法二、python中容器类型的的魔术方法三、python中算数运算符的魔术方法什么是魔术方法(魔法方法/特殊方法) 魔术方法都不需要手动去调用是在...
    99+
    2024-04-02
  • php中魔术方法的示例分析
    这篇文章给大家分享的是有关php中魔术方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php魔术方法:1、【_sleep()】控制对象序列化时真正处理的部分;2、【_wakeup()】在反序列化后还原...
    99+
    2023-06-14
  • php语言中有哪些魔术方法
    这篇文章主要介绍php语言中有哪些魔术方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php魔术方法有:“__set()”、“__get()”、“__isset()”、“__unset()”、“__sleep()”...
    99+
    2023-06-22
  • PHP中常用的魔术方法总结
    目录构造方法 / __construct析构方法 / __destruct克隆方法 / __clone非静态调用方法 / __call静态调用方法 / __callStatic打印方...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作