PHP的面相对象性和异常处理函数

面向对象性


1、类中的预定方法

_construct( ):构造方法;
_destruct( ):析构方法;
_get( ):访问器;
_set( ):修改器;
_clone( ):克隆方法;
_toString( ):返回字符串描述;

_call( $method,$p ):重载方法,其中$method是方法名,$p是参数列表数组;
     public function _call($method,$p){
          if($method == 'display'){
               if( is_array($p[0])) {         operation;     }
               else if(is_Integer($p[0])) {     operation;     }     
               }
          }

_autoload( ):自动加载,不是一个类方法,是一个单独函数,在同一个<?php?>范围内尝试包含或请求任何用来初始化所需类的文件,如:
<?php
function _autoload($name){
     require_once ($name.".php");
}
$object1 = new MyClass1();
$object2 = new MyClass2();
?>
//该函数将自动寻找脚本中可以解析为$name.php 文件的类或变量,之后执行函数内的方法体;
//自动加载含有MyClass1和MyClass2类的php文件,并创建MyClass1和MayClass2的实例;

$this:访问本类指针;

2、魔术变量

_FILE_ :返回文件所在当前目录到根目录的一个目录结构;
_LINE_ :返回在文件中的行号;
_FUCTION_ :返回当前的函数名;
_CLASS_ :返回当前的类名;
_METHOD_ :返回该方法被定义时的名字;


3、类常量 Pre-Class

该常量可以在不需要初始化该类的情况下使用,申明关键字: const
如: <?php
calss Math{
     const pi = 3.14;  }
Math::pi;
?>


4、类外对类中的数据域和函数的引用

实例函数或数据: $math -> add();
静态/类常量 :     Math :: pi

5、关键字:

const:类常量声明关键字;
static:静态关键字;
abstract:抽象声明关键字;
extends:继承关键字;
implements:接口关键字;
final关键字:声明类中的某个函数不能在任何子类中重载;
instanceof:可转换关键字;
clone:克隆关键字(需要在原class中创建一个 _clone()方法);
          $c = clone $b;

※PHP不支持多重继承;


6、转发调用:

self::      转发至自身本类;
parent::     转发至父类;
static::      转发至一开始调用的方法的子类,后期静态绑定,不载解析当前方法所在的类,而是实际运算时计算的;

后期静态绑定(late static binding):父类可以使用子类重载的方法,允许一个静态继承的上下文对一个被调用类的引用;

7、使用Reflection API(反射类)

可以用于了解所反射类中的信息;
<?php
class Page{     }
$class = new Reflection("Page");   //自动寻找本脚本中的Page类,并由此创建一个反射
echo "<pre>".$class."</pre>";
?>


异常处理


※php中,异常必须手动抛出;
使用 try{     } catch( ){     } 结构抛出和捕获处理异常;

异常类:

Exception($message,code): $message:处理异常的提示信息;code:异常出现的函数;(两个参数可选)

getCode( ):返回出传递给构造函数的代码;
getMessage( ):返回传递给构造函数的消息;
getFile( ):返回异常的代码文件的完整路径;
getLine( ):返回异常代码所在的行数;
getTrace( ):返回一个包含了产生异常的代码回退路径的数组;
getTraceAsString( )
_toString:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值