php专区

 首页 > php专区 > PHP高级 > 面向对象MVC > php 面向对象编程之构造方法与析构方法

php 面向对象编程之构造方法与析构方法

分享到:
【字体:
导读:
          大多数类都有一种称为构造函数的特殊方法,当创建一个对象时,它将自动调用构造函数,也就是使用new 这个关键字来实例化对象的时候自动调用构造方法. 构造函数的声明与其它操作的声...

大多数类都有一种称为构造函数的特殊方法,当创建一个对象时,它将自动调用构造函 数,也就是使用new 这个关键字来实例化对象的时候自动调用构造方法.

构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( ),这是PHP5 中 的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5 中仍然可以用,但 现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不 需要改相应的构造函数名称了,为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP 将搜索一个php4 中的写法,与类名相同名的构造方法.

格式:function __construct ( [参数] ) { ... ... } 

在一个类中只能声明一个构造方法,而是只有在每次创建对象的时候都会去调用一次构 造方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务,比如对成属 性在创建对象的时候赋初值.

PHP实例代码如下:

  1. /* 
  2.  * 1.对象中成员的访问(在一个对象的内部方法中,去访问本对轩昂中的其他方法和成员属性) 
  3.  * 2.在对象中的方法中都默认有一个$this关键字,这个关键字代表调用这个方法的对象 
  4.  *  
  5.  * 构造方法 
  6.  * 
  7.  *   1.是对象创建完成后,“第一个”“自动调用”的方法 
  8.  * 
  9.  *   2.构造方法的定义,方法名是一个固定的, 
  10.  *     在php4中:和类名相同的方法就是构造方法 
  11.  *     在php5中:构造方法选择使用 魔术方法__construct() 所有类中声明构造方法都使用这个名称 
  12.  *       优点:在改变类名时,构造方法不用改变 
  13.  *      魔术方法: 在类中写出了某个魔术方法,这个方法对应的功能就会添加上 
  14.  *         方法名称都是固定的(都是系统提供好的),没有自己定义的 
  15.  *         每一个魔术方法,都是在不同时刻为了完成某一功能自动调用的方法 
  16.  *         不同的魔术方法有不同的调用时机 
  17.  *         都是以 __ 开头的方法 
  18.  *          __construct(); __destruct(); __set();...... 
  19.  *      
  20.  *   作用:为成员属性初始化; 
  21.  *  
  22.  * 
  23.  * 析构方法 
  24.  * 
  25.  *  1.当对象被释放之前最后一个“自动”调用的方法 
  26.  *  使用垃圾回收器(java php),而c++手动 的释放 
  27.  * 
  28.  *  作用:关闭一些资源,作一些清理的工作 
  29.  *   
  30.  *  __destruct(); 
  31.  * 
  32.  */ 
  33.  class Person{ 
  34.   var $name
  35.   var $age
  36.   var $sex
  37.    
  38.   //php4中的构造方法 
  39.   /*function Person() 
  40.     { 
  41.    //每声明一个对象都会调用 
  42.    echo "1111111111111111"; 
  43.   }*/ 
  44.  
  45.   //php5中的构造方法 
  46.   function __construct($name,$age,$sex){ 
  47.    $this->name=$name
  48.    $this->age=$age
  49.    $this->sex=$sex
  50.  
  51.   } 
  52.  
  53.   function say(){ 
  54.    //$this->name;//对象中成员的访问使用$this 
  55.    echo "我的名字:{$this->name},我的年龄:{$this->age}
    "
     
  56.   } 
  57.  
  58.   function run(){ 
  59.  
  60.   } 
  61.  
  62.   function eat(){ 
  63.  
  64.   } 
  65.  
  66.   //析构方法 
  67.   function __destruct(){ 
  68. //开源代码phpfensi.com 
  69.   } 
  70.  } 
  71.  
  72. $p1=new Person("zhangsan",25,"男"); 
  73. $p2=new Person; 
  74. $p3=new Person; 
  75. ?> 
  76.  
分享到:
php 多态与接口学习实现与实例代码
php5中,变量的类型是不确定的,一个变量可以指向任何类型的数值、字符串、对象、资源等,我们无法说php5中多态的是变量. 我们只能说在php5中,多态应用在方法参数的类型提示位置. 一个类的任何子类对象都可以满足以当前类型作为类型提示的类型要求,所有实现这个接口的类,都可以满足以接口类型作为类型提示的方法参数...
php 类中多态的应用
Instanceof:用来测定一个给定的对象是否来自指定的对象类,代码如下:     //运行结果:    //A        //运行结果:    //2.0正在检查U盘驱动  //1.0正在检查Mp3驱动  对象引用都是一样...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……