博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP魔术方法
阅读量:5226 次
发布时间:2019-06-14

本文共 1089 字,大约阅读时间需要 3 分钟。

__construct() 构造函数

__destruct() 析构函数

__sleep()    serialize序列化时调用

__wakeup()  unserialize反序列化时调用

__clone()       检测克隆对象

属性重载的魔术方法:

set,get,sset,unset

__set()          当为不可访问的属性赋值时,会被自动调用 会得到两个参数,当前操作的属性名和属性值!

                    典型的,__set作用,用于严格控制对象结构,和批处理可以被修改的属性!

__get()         

当访问不可访问的属性时,会被自动调用

需要的参数是:一个,为当前操作的属性名

__unset()

在删除一个不可访问的属性时,可以自动被调用!

需要一个参数 当前操作的属性名。

此时就可以利用业务逻辑完成 属性的删除处理!

__isset()

在判断一个不可访问的属性是否存在时,被自动调用

需要一个参数,属性名

注意,此函数需要返回true,或者false,表示属性是否存在:

方法重载的魔术方法:

__call()

当访问一个不可访问的对象方法时,会触发当前的魔术方法!

需要的参数:

2个参数,第一是当前的方法名,第二是调用时使用的实参列表!

典型的作用,

第一, 给出友好的提示

第二, 执行默认操作!

static __callStatic()

__call类似,当静态调用一个不可访问的方法时,会自动执行!

 

魔术方法,magic method

 

在特定的情况下,会被自动调用的方法,通常负责完成某块独立的功能的方法称之为魔术方法!

特点:

1,需要用户脚本定义,不定义不执行!

2,命名方式都是以__开头!

 

 

 

总结:

 

__construct

 

__destruct

 

__sleep

 

__wakeup

 

__set

 

__get

 

__isset

 

__unset

 

__clone

 

__call

 

__callStatic

 

 

 

__autoload()//魔术函数

 

 

 

 

__invoke()

 

将一个对象,当作函数调用时,会触发该对象的__invoke()方法,由此方法,就可以调用,没有该方法就不能调用!

 

回想匿名函数

为什么,匿名函数对象(Closure类对象)可以,但是普通类对象不行?

PHP内置Closure类中有__invoke()方法:__invokephp实现匿名函数  不可或缺的部分!

 

__toString()

 

转换到字符串的意思!

 

当将对象当作字符串使用时,会自动调用该对象的魔术方法!

 

转载于:https://www.cnblogs.com/echo0821/p/5320676.html

你可能感兴趣的文章
lua for通过循环table一些差异
查看>>
jquery字体更改后的鼠标-影像学改变//凝视内容
查看>>
斯派克程序数据库设计
查看>>
通过YAJL生成json语句
查看>>
深入java并发Lock一
查看>>
js实现自己定义鼠标右键-------Day45
查看>>
centos 7 编译安装以及配置rsync+inotify 文件实时同步操作记录
查看>>
SQL Server 2008连接字符串写法大全
查看>>
sql server 使用链接服务器远程查询
查看>>
JavaScript中的继承
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
转:探讨跨域请求资源的几种方式
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
Android 开发 ThreadPool(线程池) 总结
查看>>
【poj1568】 Find the Winning Move
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
TP框架中的page分页实现
查看>>