13种魔术方法

1、构造方法 __construct():

       触发条件: 由类生成对象的时候触发

       作用:对象的初始化     

2、析构方法 __destruct():

   触发条件:当对象释放的时候触发

   作用:释放或关闭资源

   什么时候会销毁对象?

1、当php脚本执行结束(php文件加载完毕),会释放所有的资源

2、通过unset()手动释放对象

          unset() 不一定导致对象的释放,当所有引用对象的变量都被unset掉之后,对象才会被释放只要有一个没有被释放,则对象都不会释放

3、克隆方法 __clone();  

1、克隆可以产生新对象,不会触发构造方法

触发条件:当克隆对象的时候触发

对象克隆与对象赋值的区别?

克隆:产生新的对象,一个对象发生改变其他的不会改变。彼此之间相互独立

赋值:不会产生新的对象,只是增加对对象的引用,一个发生变化其他的都会随之改变

4、访问方法 __get($name);

  触发条件:

 当访问类中不可见的成员属性的时候触发

参数:

必须有一个参数,用来接收不可见成员属性的名称

5、设置方法 __set($name,$value);

触发条件:当设置一个类中不可见的成员属性触发该魔术方法

参数:

$name:接收不可见的成员属性名

                $value:要设置的值

6、判断方法 __isset($name);

触发条件:使用empty或isset判断一个不可见的成员属性是否为空或是否存在的时候触发

参数: $name:接收要检测的不可见的成员属性名

 

7、释放方法 __unset($name);

触发场景:当释放一个不可见的成员属性的时候触发该魔术方法

参数: $name:获取你要释放不可见的成员属性名

8、数组访问 __call($name,$args);

触发场景:当你访问不可见的成员方法时触发该魔术方法

参数:

$name:接收访问不可见的成员方法名

$args:接收调用方法时传入的参数,数据类型是数组

9、数组静态访问 __callStatic($name,$args);

触发场景:当你访问不可见的静态成员方法时触发该魔术方法

参数:

$name:接收访问不可见的成员方法名

$args:接收调用方法时传入的参数,数据类型是数组

 

注意:

1、该魔术方法需为静态方法

2、静态成员方法中只能含有静态成员属性,不可以含有   非静态成员属性

3、类常量是否可以存在于静态方法中?可以

10、字符串访问 __toString();

触发条件:当你echo一个对象的时候会触发该魔术方法

返回值:返回值必须是一个字符串,用于代替对象输出展示

11、序列化 __sleep();

触发条件:当序列化一个对象的时候触发

 

返回值:类型为一个数组,里面包含要序列化的成员属性名

12、反序列化 __wakeup();

触发条件:当反序列化生成一个对象的时候触发;

返回值:类型为一个对象

13、自动加载类 __autoload($className);

触发条件 : 在使用不存在的类的时候会自动触发该函数

作用 : 实现类的自动加载

参数 : $className 接收类名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值