正 文

PHP5.0对象模型探索之其它特性


www.7dspace.com  更新日期:2005-11-30 1:07:30  七度空间


  类型指示

  大家都知道,PHP是一种弱类型的语言。在使用变量前不需要定义,不需要声明变量的数据类型。这在编程中带来很多便利,但也带了一些隐患,特别当变量的类型变化时。在PHP5增加了类型指示,可以在执行过程中自动对类方法的参数类型进行判断。这类似于Java2中的 RTTI,配合reflection可以让我们很好地控制对象。

<?php
interface Foo {
 function a(Foo $foo);
}

interface Bar {
 function b(Bar $bar);
}

class FooBar implements Foo, Bar {
 function a(Foo $foo) {
  // ...
 }

 function b(Bar $bar) {
  // ...
 }
}

$a = new FooBar;
$b = new FooBar;

$a->a($b);
$a->b($b);
?>

  在强类型语言中,所有变量的类型将在编译时进行检查,而在PHP中使用类型指示来对类型的检查则发生在运行时。如果类方法参数的类型不对,将会报出类似“Fatal error: Argument 1 must implement interface Bar…”这样的错误信息。

  以下代码:

<?php
function foo(ClassName $object) {
 // ...
}
?>

  相当于:

<?php
function foo($object) {
 if (!($object instanceof ClassName)) {
  die("Argument 1 must be an instance of ClassName");
 }
}
?>

3页,页码:[1] [2] [3] 

上一篇:PHP5.0对象模型探索之Zend引擎的发展
下一篇:PHP5.0对象模型探索之抽象方法和抽象类
作者:haohappy2004  来源:blog ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐