加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-05-19 13:24:31 所属栏目:PHP教程 来源:
导读:大多数类都有一种称为构造函数的特殊方法,当创建一个对象时,它将自动调用构造函 数,也就是使用new 这个关键字来实例化对象的时候自动调用构造方法.构造函数的声明与其它操作的声明一样,只是其名称必须是__construct(

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

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

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

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

PHP实例代码如下:

<?php 

/* 

 * 1.对象中成员的访问(在一个对象的内部方法中,去访问本对轩昂中的其他方法和成员属性) 

 * 2.在对象中的方法中都默认有一个$this关键字,这个关键字代表调用这个方法的对象 

 *  

 * 构造方法 

 * 

 *   1.是对象创建完成后,“第一个”“自动调用”的方法 

 * 

 *   2.构造方法的定义,方法名是一个固定的, 

 *     在php4中:和类名相同的方法就是构造方法 

 *     在php5中:构造方法选择使用 魔术方法__construct() 所有类中声明构造方法都使用这个名称 

 *       优点:在改变类名时,构造方法不用改变 

 *      魔术方法: 在类中写出了某个魔术方法,这个方法对应的功能就会添加上 

 *         方法名称都是固定的(都是系统提供好的),没有自己定义的 

 *         每一个魔术方法,都是在不同时刻为了完成某一功能自动调用的方法 

 *         不同的魔术方法有不同的调用时机 

 *         都是以 __ 开头的方法 

 *          __construct(); __destruct(); __set();...... 

 *      

 *   作用:为成员属性初始化; 

 *  

 * 

 * 析构方法 

 * 

 *  1.当对象被释放之前最后一个“自动”调用的方法 

 *  使用垃圾回收器(java php),而c++手动 的释放 

 * 

 *  作用:关闭一些资源,作一些清理的工作 

 *   

 *  __destruct(); 

 * 

 */ 

 class Person{ 

  var $name; 

  var $age; 

  var $sex; 

  //php4中的构造方法 

  /*function Person() 

    { 

   //每声明一个对象都会调用 

   echo "1111111111111111"; 

  }*/ 

  //php5中的构造方法 

  function __construct($name,$age,$sex){ 

   $this->name=$name; 

   $this->age=$age; 

   $this->sex=$sex; 

  } 

  function say(){ 

   //$this->name;//对象中成员的访问使用$this 

   echo "我的名字:{$this->name},我的年龄:{$this->age}<br>" 

  } 

  function run(){ 

  } 

  function eat(){ 

  } 

  //析构方法 

  function __destruct(){ 

//开源代码Cuoxin.com 

  } 

 } 

$p1=new Person("zhangsan",25,"男"); 

$p2=new Person; 

$p3=new Person; 

?> 

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!