定义:所有以两个下划线开头的类方法,被称为"魔术方法"(Magic methods)。
1.__construct()
实例化对象时被调用,
当__construct和以类名为函数名的函数同时存在时, __construct将被调用,另一个不被调用。
2.__destruct()
当删除一个对象或对象操作终止时被调用。
3.__call()
对象调用某个方法,
若方法存在,则直接调用;
若不存在,则会去调用__call函数。
4.__get()
读取一个对象的属性时,
若属性存在,则直接返回属性值;
若不存在,则会调用__get函数。
5.__set()
设置一个对象的属性时,
若属性存在,则直接赋值;
若不存在,则会调用__set函数。
6.__toString()
打印一个对象的时被调用。如echo $obj;或print $obj;
7.__clone()
克隆对象时被调用。如:$t=new Test();$t1=clone $t;
8.__sleep()
serialize之前被调用。若对象比较大,想删减一点东东再序 列化,可考虑一下此函数。
9.__wakeup()
unserialize时被调用,做些对象的初始化工作。
10.__isset()
检测一个对象的属性是否存在时被调用。如:isset($c->name)。
11.__unset()
删除某个变量
unset一个对象的属性时被调用。如:unset($c->name)。
12.__set_state()
调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
13.__autoload()
实例化一个对象时,如果对应的类不存在,则该方法被调用。
14.__invoke()
当尝试以调用函数的方式去调用对象,没有定义则不存在,
定义后则表示尝试将一个对象以函数方式调用时自动访问。
php的异常
什么是异常?
PHP 5 提供了一种新的面向对象的错误处理方法。
异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。
1.通常错误提示信息不会对用户开放,但是用户操作时必须明确是否能够正确的执行,
因此我们需要对于可能出现问题的代码内容作出处理,这个就被称为异常处理。
2.异常处理操作: try...catch..代码块。
3.try 当中包含可能出现问题的代码,而用catch来对出现的异常进行捕获。
4.一旦有定义好的异常出现,要么在该异常后的语句被跳过不再执行,而去执行输出catch块中的代码。
5.在php中,一般是判断是否正确返回或者捕获到需要的对象或数值,如果没有,则使用throw关键字,抛出异常信息。
当异常被触发时,通常会发生:
1.当前代码状态被保存
2.代码执行被切换到预定义的异常处理器函数
3.根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执 行,或从代码中另外的位置继续执行脚本
不同的错误处理方法:
1.异常的基本使用
2.创建自定义的异常处理器
多个异常
3.重新抛出异常
4.设置顶层异常处理器
require_once 和include_once的区别??
include_once —— 如果没有对应文件,只是发出错误警告而后面的代码正确执行
require_once —— 如果没有对应文件,发出错误提示后并终止程序
调用当前类中的静态方法用——self::类名字符串(参数);
判断类当中是否包含某个指定名称的非静态函数方法 ——method_exists
如果没有去做定义,则该函数默认无返回值,相当于返回一个FALSE
sleep 方法常用于提交未提交的数据,或类似的清理操作
能够用echo输出,说明使用了魔术方法tostring,将其转变成了字符串