空间php5.2,第1次亲密接触PHP5(2)

第1次亲密接触PHP5(2)

更新时间:2006年10月09日 00:00:00   作者:

接上篇,继续硬着头皮往下翻。。。。:)

类型指示

在PHP5,你可以在一个类的方法中指明其参数必须为一个类的实例:

Example 10: 类型实例

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: 类变量和类方法

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: 异常处理

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
\n";

// Some catastrophic measure here

}

?>

可以看出,"try"表示的是执行代码的地方,当有错误的时候执行"catch"区域的代码。

在"catch"区域你应当指明执行异常的对象,这样可以使我们的结构更清晰

自定义异常处理

你可以在程序中定义自己习惯的捕获异常错误的代码。

非常简单,你仅仅需要继承一个异常类,在这个类中需要一个构造器和一个叫getMessage的方法而已:

Example 13: 自定义异常类

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: 名称空间

namespace Math {

class Complex {

//...code...

function __construct() {

print("hey");

}

}

}

$m = new Math::Complex();

?>

注:在实际应用中,你可以在不同的名称空间里定义同名的类来完成不同的任务(但接口要相同)

终天蹩手蹩脚地翻译完了,有些翻译不正确的地方,如术语、对原文的理解,敬请一一指出,共同完善,共同开始PHP5的学习、探讨。。。

相关文章

1a1b05c64693fbf380aa1344a7812747.png

在windows iis5下安装php4.0+mysql之我见...2006-10-10

4f55910a645b073bc4fc65dc10dc14bd.png

使用PHP维护文件系统...2006-10-10

0ea3c7666119d5615e582f823fb3fad6.png

在PHP中,有四种方法输出字符串。echo结构可以一次输出多个值;print()只可以输出一个值;printf()可以格式化输出;print_r()可以输出数组,对调试很有好处。2011-04-04

4f96a78db829b1556ff16de21e013c7a.png

基于文本的搜索...2006-10-10

8cc1031babc6aff2319f1c6af8544aa0.png

构建简单的Webmail系统...2006-10-10

0c932a99bb7b6f23c937db507070cc7b.png

利用Yahoo! Search API开发自已的搜索引擎-php版...2006-10-10

cca732bf65a93ed2ec0ac80c638460fe.png

php访问查询mysql数据的三种方法...2006-10-10

2d9f31f2af7b675a3d153d2b7f1035a7.png

MVC是模型(Model)、视图(View)和控制(Controller)的缩写,PHP中采用MVC模式的目的是实现Web系统的职能分工,通俗的说就是把业务逻辑处理从用户界面视图中分离出来。2011-03-03

b452cee8ec5cd9e58ab98eba17281e59.png

IIS+PHP+MySQL+Zend配置 (视频教程)...2006-12-12

f4838ec7e2d4da28e0b57d4e852dadd4.png

这两天学了写表单。总结于此,以备忘。2011-06-06

最新评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值