php5中的overloading

来源:互联网 发布:执业医师网络培训 编辑:程序博客网 时间:2024/06/08 06:30
php5中的overloading始终没有什么惊喜,实现起来居然十分曲折的,这点还是比不上java哦
,其中是通过_call来实现的,这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。
比如

<?php
class Magic {
  function __call($name,$arguments) {
    if($name=='foo') {
      if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);
      if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
    }
  }   private function foo_for_int($x) {
    print("oh an int!");
  }   private function foo_for_string($x) {
    print("oh a string!");
  }
} $x = new Magic();
$x->foo(3);
$x->foo("3");
?>

 你看多不好呀,还要手工去判断参数的类型

原创粉丝点击