php专区

 首页 > php专区 > PHP应用 > 常用功能 > PHP面向对象程序设计之构造方法和析构方法详解

PHP面向对象程序设计之构造方法和析构方法详解

分享到:
【字体:
导读:
         [导读] PHP面向对象程序设计之构造方法和析构方法详解...

本文实例讲述了PHP面向对象程序设计之构造方法和析构方法。分享给大家供大家参考,具体如下:对象创建完成后第一个被对象自动调用对象在销毁之前最后一个被对象自动调用的方法,这也是我们在对象中使用析构方法的原因。所以通常使用构造方法完成一些对象的初始化工作,使用析构方法完成一些对象在销毁之前的清理工作。1.构造方法

function __construct( [参数列表] ){ //构造方法名称是以两个下划线开始的
  //方法体,通常用来对成员属性进行初始化赋值
}


setName($name);  //调用类方法
    $this->age = $age;
    $this->setGender($gender);
  }
  public function setName($name){
    $this->name = $name;
  }
  // ... setter 方法
}
$person = new Person("yeoman",23,'男');
?>


function __construct(){
  parent::__construct(); // 调用父类的构造函数必须显示的使用parent调用父类构造函数
  classname::__construct(); // 调用其他类的构造函数,classname是类名
  //其他操作
}

调用:
setName($name)
    echo "动物类被创建!";
  }
  // ... 其他方法
}
class Birds extends Animal{
  private $name;
  private $leg;
  function __construct($name,$leg){
    parent::__construct($name); // 显示调用
    $this->setLeg($leg);
    echo "鸟类被创建!";
  }
  // ... 其他方法
}
?>

时,会沿着父类向上搜索,直到找到最合适的构造函数,例如:
// 接上例
class Parrot extends Birds{
  private $name;
  private $leg;
  private $wing;
  function __construct($name){
    parent::__construct($name); // 此时没有找到父类(Birds类)合适的构造函数,只能向上搜索,搜索到Animal类时,才找到合适的构造函数
    echo "鹦鹉类被创建!";
    $this->smackTalk();
    /*
    输出结果:
    "动物类被创建!"
    "鹦鹉说话!"
    */
  }
  function smackTalk(){
    echo "鹦鹉说话!";
  }
}


function __construct($name,$leg){
    Animal::__construct($name); // 调用Animal构造函数
    Birds::__construct($name,$leg); // 调用Birds构造函数
}

2.析构函数
function __deconstruct(){
  //方法体,通常用来完成一些在对象销毁前的清理任务
}



";
?>

$a = nullunset()
name = $name;
    $this->sex = $sex;
    $this->age = $age;
  }
  function __destruct(){
    echo "再见" . $this->name . "
"; } } $person1 = new Person("张三三", "男", 23); $person1 = null; //第一个对象将失去引用 $person2 = new Person("李四四", "女", 17); $person3 = new Person("王五五", "男", 43); ?> 栈内存后进先出特点,最后创建的对象会被最先释放,多以先自动调用第三个对象的析构方法,最后才调用第二个对象的析构方法。php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

分享到:
PHP面向对象程序设计重载(overloading)...
本文实例讲述了PHP面向对象程序设计重载(overloading)操作。分享给大家供大家参考,具体如下:重载未定义或不可见的类属性或方法时,重载方法会被调用。是通过魔术方法(magic methods)来实现的。 通俗一点来说,重载在php中的含义是指,当一个对象或类使用其未定义或不可见的属性和方法时,其中的一些“处理机制”。属...
php打印三角星星方法实列
php打印三角星星方法实列 php打印三角形,直角三角形、倒直角三角形、等腰三角形的代码。逻辑都是外层循环控制行数,内层循环控制空格或星号的个数。 一、php输出直角三角形
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……