常用的魔术方法

```
__construct(),类的构造函数
对象创建完成后第一个被对象自动调用的方法。
在每个类中都有一个构造方法
如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法。
例:

1、常用创建对象初始化时,给变量赋值

2、写登录的时候,会在公共控制器里创建一个构造函数,里面写验证登录session是否存在的逻辑代码,然后在每个控制器都继承这个公共控制器,会首先执行这个构造函数验证是否登录成功。(如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。)
```
---
```
__destruct(),类的析构函数
析构方法允许在销毁一个类之前 或者说 关闭/结束一个类之前 
执行的一些操作或完成一些功能,
比如说关闭文件、释放结果集等。

1、PHP页面加载完成后,2、unset()类,3、变量指向别的对象或值时,4、exit()时被调用。

当PHP决定你的脚本不再与对象相关时,析构函数将被调用

```
---
```
__call(),在对象中调用一个不可访问方法时调用
该方法有两个参数,
第一个参数 $function_name 会自动接收不存在的方法名,
第二个 $arguments 以数组的方式接收不存在方法的多个参数。
为了避免当调用的方法不存在时产生错误,
而意外的导致程序中止,可以使用 __call() 方法来避免。
该方法在调用的方法不存在时会自动调用,程序仍会继续执行下去。
```
---
```
__callStatic(),用静态方式中调用一个不可访问方法时调用
此方法与上面所说的 __call() 
功能除了 __callStatic() 是未静态方法准备的之外,
其它都是一样的。
```
---
```
__get()
类的成员属性被设定为 private(私有) 后,
如果我们试图在外面调用 它则会出现“不能访问某个私有属性”的错误。
这是就可使用__get()。
```
---
```
__set(),给一个未定义的属性赋值时调用
__set($name, $value)` 方法用来设置私有属性
此方法会被触发
传递的参数是被设置的属性名和值。
```
---
```
__isset(),
当对 不可访问(私密,受保护,不存在)的成员属性使用isset()或empty()这两个函数时,则会不起作用
你只要在类里面加上一个__isset()方法就可以了,当在类外部使用isset()/empty()函数来测定对象里面的私有成员
是否被设定时,就会自动调用类里面的__isset()方法了帮我们完成这样的操作。
```
---
```
__unset(),,
当对 不可访问(私密,受保护,不存在)的成员属性使用unset()这个函数时,则会不起作用
你只要在类里面加上一个__unset()方法就可以了,当在类外部使用unset()函数来删除对象里面的私有成员
,就会自动调用类里面的__unset()方法了帮我们完成这样的操作。
```

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值