PHP的魔术方法及异常

 php的魔术方法,及每个魔术方法的作用

定义:所有以两个下划线开头的类方法,被称为"魔术方法"(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,将其转变成了字符串

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值