• 技术文章 >php教程 >php手册

    第1次亲密接触PHP5(2)

    2016-06-21 09:10:45原创345

    php5

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

    类型指示



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


    二泉
    2003/7/2于郑州



    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp quot function Exception foo
    上一篇:PHP的面向对象编程:开发大型PHP项目的方法(一)(转载) 下一篇:编译问题
    Web大前端开发直播班

    相关文章推荐

    • 一个好用的分页函数• 一步步编写PHP的Framework(十五)• PHP生成GIF动态图片验证码• 初学PHP的18个基础例程• 在IIS里安装PHP的方法
    1/1

    PHP中文网