源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 560|回复: 19

[PHP编程] 第1次亲密接触PHP5(2)

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2006-10-9 00:00:00 | 显示全部楼层 |阅读模式

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

在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的学习、探讨。。。

回复

使用道具 举报

4

主题

1万

回帖

60

积分

注册会员

Rank: 2

积分
60
发表于 2022-9-3 08:39:05 | 显示全部楼层
啪啪啪生怕PSP怕
回复 支持 反对

使用道具 举报

14

主题

1万

回帖

75

积分

注册会员

Rank: 2

积分
75
发表于 2022-10-22 22:21:43 | 显示全部楼层
刷屏刷屏刷屏
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

321

积分

中级会员

Rank: 3Rank: 3

积分
321
发表于 2022-11-5 06:01:21 | 显示全部楼层
天天源码社区论坛
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

380

积分

中级会员

Rank: 3Rank: 3

积分
380
发表于 2023-1-9 20:30:02 | 显示全部楼层
我要金豆金豆金豆
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

61

积分

注册会员

Rank: 2

积分
61
发表于 2023-10-26 06:14:30 | 显示全部楼层
看看看看
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

473

积分

中级会员

Rank: 3Rank: 3

积分
473
发表于 2024-4-10 10:16:42 | 显示全部楼层
有什么好的服务器
回复 支持 反对

使用道具 举报

11

主题

2万

回帖

300

积分

中级会员

Rank: 3Rank: 3

积分
300
发表于 2024-5-21 10:01:21 | 显示全部楼层
儿飞飞微风DVD谁vdsvd
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-6-22 03:49:28 | 显示全部楼层
强烈支持楼主ing……
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-6-27 03:02:24 | 显示全部楼层
借款金额看了就立刻
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-23 07:22 , Processed in 0.074251 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表