资讯专栏INFORMATION COLUMN

php魔术方法的学习

abson / 2530人阅读

摘要:众多魔术方法中唯一一个不在类中使用的方法,该方法可以自动加载包含文件这样执行文件就可以自动包含以上三个文件了。打印调试信息,该方法只在以上版本可用还有很多的魔术方法笔者还没介绍,读者如果感兴趣,可自行查阅手册进行学习在线手册

自从php进入5.0版本以来,php以完全支持面向对象编程,使其开发效率愈加高效。同时其也引入了新的概念->魔术方法,以__开头的预定义方法,帮助我们更加高效进行程序地开发.

1.__construct()
构造方法,对象实例化时,让函数初始化。

2.__destruct()
析构函数,对象释放之前最后调用地函数,释放掉保存在对内存中的数据。

3.__set()
当对象中的成员为私有属性时,通过该方法可以直接设置成员属性的值

4.__get()
当对象的成员为私有属性时,通过该方法可以读取成员属性的值

5.__isset()
查看对象中私有属性是否存在

6.__unset()
直接删除对象中的私有属性

7.__call()
当对象调用类中不存在的方法时,可以通过类中的__call()方法来进行错误处理,防止程序报错终止

8.__toString()
当对对象进行输出时,调用该方法。比如echo $obj;否则,发生致命错误

9.__clone()
当我们克隆一个对象时,可以通过__clone()方法中的$this关键字对被克隆出来的对象进行初始化,而$that关键字可以对原对象进行操作。

10.__autoload()
众多魔术方法中唯一一个不在类中使用的方法,该方法可以自动加载包含文件
for example

one.class.php

two.class.php

three.class.php

test.php

这样执行test.php文件就可以自动包含以上三个文件了。

11.__sleep()
当我们对某个对象进行序列化时(serialize()),自动调用该函数,在该方法中返回一个数组,数组有几个成员,就序列化该几个成员。

12.__wakeup()

当我们对某个二进制文件进行反序列化时(unserialize()),自动调用该函数,自动调用该函数,对反序列化生成的对象进行初始化。

13.__debuginfo()
打印调试信息,该方法只在php5.6以上版本可用

还有很多的魔术方法笔者还没介绍,读者如果感兴趣,可自行查阅php手册进行学习
php在线手册

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26147.html

相关文章

  • Laravel学习笔记之PHP重载(overloading)

    摘要:重载在中就大量应用了重载相关知识,如在中就用到了方法重载知识使用魔术方法来动态创建类中未定义或不可见的静态方法。中通过引入魔术方法来实现动态的创建类属性和方法,包括属性重载的魔术方法和方法重载的魔术方法。 说明:本文主要讲述PHP中重载概念,由于Laravel框架中经常使用这块知识点,并且PHP的重载概念又与其他OOP语言如JAVA中重载概念不一样,故复习并记录相关知识点。同时,作者会...

    khs1994 评论0 收藏0
  • PHP魔法函数性能分析

    摘要:结语这里主要测试了,,,,这五个常用的且可有其他实现方式代替的魔法函数。里使用魔术方法的性能还是存在问题吗答在中使用与不使用魔术方法之间的差异和在中近乎一致。 前言 曾经记得鸟哥Laruence提过不建议使用魔术方法,自此之后一旦涉及使用魔术方法的地方,我都会下意识的想一下,这样写真的好吗?由于这一到两年来一直忙于工作和学习新的知识,所以在这道坎儿上一直没有做深入的探索一直恍恍惚惚过去...

    coolpail 评论0 收藏0
  • php学习笔记(四)魔术方法

    摘要:将所有以两个下划线开头的类方法保留为魔术方法。和当对象被当做使用时,这个方法会被自动调用。此方法必须返回一个字符串当对象被当成方法调用时,这个方法会被自动调用。参数是一个枚举数组,包含着要传递给方法的参数。函数把数组元素组合为一个字符串。 PHP 将所有以 _ _(两个下划线)开头的类方法保留为魔术方法。 __toString() 和__invoke() public stri...

    wangdai 评论0 收藏0
  • PHP - 魔术常量、魔术方法

    摘要:魔术方法构造函数允行开发者在一个类中定义一个方法作为构造函数。如果子类没有定义构造函数则会如同一个普通的类方法一样从父类继承假如没有被定义为的话。和函数会检查类中是否存在一个魔术方法。魔术常量魔法方法 PHP - 魔术常量 __LINE__ 文件中的当前行号 __FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 __DIR__ 文件所在的目录。如果用在...

    qpal 评论0 收藏0
  • 搞定PHP面试 - PHP魔术方法知识点整理

    摘要:魔术方法知识点整理代码使用语法编写一构造函数和析构函数构造函数具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。在析构函数中调用将会中止其余关闭操作的运行。析构函数中抛异常会导致致命错误。 PHP魔术方法知识点整理 代码使用PHP7.2语法编写 一、构造函数和析构函数 __construct() 构造函数 __construct ([ mi...

    付永刚 评论0 收藏0

发表评论

0条评论

abson

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<