PHP5 构造函数的认识 转

转自http://www.ximenyifan.com

"

php4中,类的构造函数默认是与类名相同的一个FUNCTION

在PHP5中,不仅沿用着这种命名方式,同时还引入了一些新的元素:

__construct() 这是一个方法名,他就是PHP5中的默认构造函数

他有什么好处呢,首先当你把类名改变时 ,他的构造函数不用再随类名而改变

其次

  1. class one{
  2.   function one{
  3.     $this->test();
  4. }
  5. }
  6. class two extends one {
  7.   function test{
  8.    echo "123";
  9. }
  10. }
  11. $test=new two();

复制代码

这是PHP4的一个错误写法,在实例two这个类的同时one类被继承同时执行one的构造还是,这个时候调用test方法,但这个时候test并不在one里面,因此会出找不到方法的错误。

  1. class one{
  2.   function __construct(){
  3.     $this->test();
  4. }
  5. }
  6. class two extends one{
  7.   function test{
  8.    echo "123";
  9. }
  10. }
  11. $test=new two();

复制代码

这个问题在PHP5中通过__construct()成功的解决了。

同时parent::__construct()又区分了父类和子类的构造函数

php5中不仅多了__construct(),同时还有一个__destruct( )

我们称之为析构函数:

与构造函数相对的就是析构函数。析构函数是PHP5新添加的内容,在PHP4中没有析构函数。析构函数允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件,释放结果集等,析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行,也就是对象在内存中被销毁前调用析构函数。与构造函数的名称类似,一个类的析构函数名称必须是__destruct( )

PHP也有接口,interface 定义的类为接口类

PHP方法也区分private public等,一般我们不特意定意默认为public

"

posted @ 2011-04-02 11:42  ndxsdhy  阅读(1382)  评论(0编辑  收藏  举报