Home >php教程 >php手册 >在PHP中实现重载构造函数的方法

在PHP中实现重载构造函数的方法

WBOY
WBOYOriginal
2016-06-13 11:39:281355browse

重载(与覆盖不同)在PHP中不支持。在OOP中,你可以重载一个方法来实现两个或重多的方法具有相同的名字,但是有不同数量或类型的参

数(这要看语言)。PHP 是一种松散类型的语言,所以通过类型重载不起作用,然而通过参数的个数不同来重载也不起作用。

  有时在OOP中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在PHP中实现它的技巧是:

  

  class Myclass {
  function Myclass() {
  $name="Myclass".func_num_args();
  $this->$name();
  //注意$this->$name()一般是错误的,但是在这里$name是一个将被调用方法的名字

  }

  function Myclass1($x) {
  code;
  }

  function Myclass2($x,$y) {
  code;
  }

  }
    ?>
  通过在类中的额外的处理,使用这个类对用户是透明的:

  $obj1=new Myclass('1'); //将调用Myclass1
  $obj2=new Myclass('1','2'); //将调用Myclass2

  有时这个非常好用。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn