第1次亲密接触PHP5(2)

2016-02-19 12:12 8 1 收藏

今天图老师小编给大家展示的是第1次亲密接触PHP5(2),精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - Web开发 】


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

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

来源:http://www.tulaoshi.com/n/20160219/1600195.html

延伸阅读
标签: ASP
  在ASP.Net内中,如何做到分页 我不只一次地被别人问起,如何在ASP.Net实现分页功能。我实在不愿意回答这个问题。因为在ASP.Net中实现分页,实在是太简单了,简单到你一看到程序就会去气得跳楼,呵呵要发表感叹,为什么这个东东不早出来。 在以住的WEB技术中,我们要做到分页,经常是一长串代码才能搞定它,而且每用一个页面,就要重写...
孕妇尤需注意补铜 人们关注补铁,因为它对防止贫血尤其是妇儿的贫血症有重要的作用;人们关注补锌,因为它可以提高人的免疫力。事实上,很少有人了解铜对健康的重要作用,所以对补铜也不够重视。一项研究表明,半数以上的的人群认为铜对健康的作用不大或者根本不重要,此外许多成年人未摄取足够量的铜,其中一个原因就是含脂肪和油类的食物几...
防止蚊子与宝宝“亲密接触” 蚊子是女儿的大敌。蚊子仿佛特别“青睐”女儿,只要有她在,绝不叮别人,眨眼间白皙细嫩的皮肤就被咬出好几个包,以致被咬的整个耳朵、上眼皮、手指红肿起来,至少一个星期才能下去。当然,这首先得保证“包”不被她的小手抓破;否则,引起感染,内服和外用药并用,也得两个星期才能过关。...
标签: ASP
  接上一节,我们这一节主要计论如何使用DataSet,在数据库中增加、修改、删除一个数据。 首先我们需要打开一个联结,我们的数据库还是用上一节的吧:) string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;"; string strComm = "select * from UserList"; ADOConnection MyC...
标签: ASP
  DataGrid的分页(2) 这里我紧接上一节,讲DataGrid的分页。在上例中,我们可以看到对于分页控制,本来已经足够了,呵呵,但是只是一个普通的分页,多没有意思,还是给它变些花样好。先讲讲上一节DataGrid控件所用的属性 <ASP:DataGrid id="DataGrid1" runat="server" AllowPaging="True" PageSize=...

经验教程

491

收藏

87

精华推荐

亲密接触ASP.Net(16)

亲密接触ASP.Net(16)

若初见zl

亲密接触ASP.Net(6)

亲密接触ASP.Net(6)

绝妙一笔70

亲密接触ASP.Net(15)

亲密接触ASP.Net(15)

菲菲妈1234

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部