第1次亲密接触PHP5(2)
发布时间:2020-03-22 01:06:51 所属栏目:PHP教程 来源:互联网
导读:第1次亲密接触PHP5(2)
接上篇,继续硬着头皮往下翻。。。。:) 类型指示 在PHP5,你可以在一个类的方法中指明其参数必须为一个类的实例: Example 10: 类型实例 <?php class foo { // code ... } class bar { public function process_a_foo(foo $foo) { // Some code } } $b = new bar(); $f = new foo(); $b->process_a_foo($f); ?> 可以看到,在变量前指定一个类名,让PHP5知道这个变量将是一个类的实例 静态成员 静态成员和静态方法在OOP中一般称为"类变量"和"类方法"。 一个"类方法"可以在对象没有被实例化的时候调用 一个"类变量"可以在对象没有被实例化的时候访问(也不需要对象的方法来调用) Example 11: 类变量和类方法 <?php class calculator { static public $pi = 3.14151692; static public function add($x,$y) { return $x + $y; } } $s = calculator::$pi; $result = calculator::add(3,7); print("$result"); ?> * 异常处理 异常处理是开发语言中公认的处理异常错误的方法,如在JAVA和C++中。 PHP5用"try"和"catch"关键字来捕获异常。 Example 12: 异常处理 <?php class foo { function divide($x,$y) { if($y==0) throw new Exception("cannot divide by zero"); return $x/$y; } } $x = new foo(); try { $x->divide(3,0); } catch (Exception $e) { echo $e->getMessage(); echo "n<br />n"; // Some catastrophic measure here } ?> 可以看出,"try"表示的是执行代码的地方,当有错误的时候执行"catch"区域的代码。 在"catch"区域你应当指明执行异常的对象,这样可以使我们的结构更清晰 自定义异常处理 你可以在程序中定义自己习惯的捕获异常错误的代码。 非常简单,你仅仅需要继承一个异常类,在这个类中需要一个构造器和一个叫getMessage的方法而已: Example 13: 自定义异常类 <?php class WeirdProblem extends Exception { private $data; function WeirdProblem($data) { parent::exception(); $this->data = $data; } function getMessage() { return $this->data . " caused a weird exception!"; } } ?> 现在就可以用"throw new WeirdProblem($foo) "来抛出异常。如果在try{}这样的区域中出现异常,PHP5就会跳入 catch区域来抛出异常。 名称空间 "名称空间"可以让你方便地调用一组类或方法: Example 14: 名称空间 <?php namespace Math { class Complex { //...code... function __construct() { print("hey"); } } } $m = new Math::Complex(); ?> 注:在实际应用中,你可以在不同的名称空间里定义同名的类来完成不同的任务(但接口要相同) <翻译完毕> 终天蹩手蹩脚地翻译完了,有些翻译不正确的地方,如术语、对原文的理解,敬请一一指出,共同完善,共同开始PHP5的学习、探讨。。。 (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |