```
__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()方法了帮我们完成这样的操作。
```