仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3590|回复: 18
打印 上一主题 下一主题

[学习教程] PHP教程之第1次密切接触PHP5(2)

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:28:32 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
告诉你了一个方式,但是缺少努力这一环节,那也是白搭。php5   接上篇,持续硬着头皮往下翻。。。。:)
类型唆使



在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的进修、切磋。。。


                            二泉
                            2003/7/2于郑州  根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 12:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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