面向对象中的魔术方法和关键字

魔术方法 (只有php里面_有魔术方法) 全都 自动调用

1.魔术方法都以“__”开头
2. 全都自动调用,不同的魔术方法有不同的调用时机
3.魔术方法的方法名都是固定的
4.如果没有写那么魔术方法就不存在,也就不会有自动调用的功能了

__construct()
__destruct()
__set()
__get()
__isset()
__unset()

__set() 代替通用的set赋值方法,在直接设置私有属性时调用 (该方法需要两个参数)
__get() 代替通用的get赋值方法,在直接访问私有成员属性的时候自动调用(该方法需要一个参数)

__isset()isset()
__isset()是在使用isset()方法,判断一个私有属性(或者是受保护属性)是否存在时,自动调用__isset()魔术方法(参数是属性名称)

__unset() unset()
__unset()是在使用unset()方法,删除一个私有属性(或者是受保护属性)的时候,自动调用__unset()魔术方法(参数是属性名称

__toString()
1.我们在使用echo,print,printf输出一个对象引用时(或者可以说输出一个对象地址时,自动调用)
2.我们可以把对象的基本信息放到__toString()内部,形成字符串返回
3.__toString()方法中,不能有参数,必须有返回值,返回值必须是字符串类型的

__clone()
1.我们可以使用clone关键字复制一个对象
2.__clone()魔术方法
(1).在使用clone关键字复制对象的时候,自动调用的方法
(2).作用对新克隆的对象进行初始化
(3).在这个魔术方法方法中的$this代表的是克隆之后的对象,也就是说代表的副本

__call()
1.在调用对象中不存在的方法是,自动调用的方法
2.需要有两个参数
(1)第一个参数是:调用的那个不存在的方法的方法名
(2)第二个参数是:调用的那个不存在的方法的参数
3.作用:如果方法不存在,咱们可以提示信息。主要作用:可以将那些功能相似,但方法名不同的方法,采用这种方式来表达

关键字 instanceof final static const

instance of 操作符 用于判断当前的对象是否属于某一个类的类型

final 在Java里面final可以修饰常量
php里定义常量
1.define(“PI”,3.1415);
2.const PI=3.1415;

final只可以修饰类和方法

修饰类 final class Person{}
final修饰的类不能扩展,即不能有子类,也就是说这个类是最终的类。

修饰方法 public (final) function say(){}
final修饰的方法,不能在子类中被重写,那么这个方法也就是最终的方法。

static
static修饰属性和方法,不能修饰类
1.static修饰的成员属性,存在于内存的初始化静态段
2.可以被所有同一类的多个对象共用(重要)
3.类在第一次出现的时候,就把该类的静态成员加载到了内存中
4.self::指的是本类
5.静态成员一旦被加载,只有脚本结束才释放
6.静态方法中不能访问非静态成员(重要)

const
const修饰的成员属性为常量,const只能修饰成员属性(相当于这个属性是一个常量属性)

定义常量需要注意的几点
1.常量建议使用大写,不使用$
2.常量一定在声明的时候就给好值了
3.常量只能读,不能修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值