博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php构造方法与析构方法
阅读量:7061 次
发布时间:2019-06-28

本文共 2297 字,大约阅读时间需要 7 分钟。

php中

“方法”也叫做“函数”
“访问”也叫做“调用”

构造方法也称之为“构造函”

构析方法也称之为“构析函数”

构造方法的定义与调用

"; //定义一个无参数的构造方法 }}class Girl2{ public $name; function __construct($name){ //定义一个带有参数的构造方法 $this->name = $name; echo '一个叫'.$this->name.'MM诞生了!
'; }}$g1 = new Girl1(); //实例化类,调用无参数的构造方法$g2 = new Girl2('沫沫'); //实例化类,调用带有参数的构造方法?>

如果类中没有定义构造方法,PHP引擎会自动给类添加一个构造方法,其参数列表为空,方法内容也为空。

析构方法

析构方法在类的实例化被销毁时自动调用,且没有参数。

function __destruct(){    //...}

调用父类的构造方法和析构方法

  • 如果子类中没有定义构造方法,而父类中定义了构造方法,则子类实例化时会自动调用父类的构造方法

  • 如果在子类中定义了构造方法,则在子类实例化是不会自动调用父类的构造方法

  • 如果子类中没有定义析构方法,则子类的实例在被销毁时会自动调用父类的析构方法

  • 如果在子类中定义了析构方法,则在子类的实例被销毁时不会自动调用父类的析构方法

在子类中调用父类的构造方法和析构方法,需要按如下语法格式显式调用:

//----------显式调用父类的构造方法----------function __construct(){    //...    parent::__construct();    //...}//---------显式调用父类的析构方法--------------function __destruct(){    //...    parent::__destruct();    //...}

之所以被称为“显式”,是因为若子类中没有定义构造方法和析构方法,当子类的实例化对象销毁时父类的构造方法和析构方法会被自动调用;而在子类中定义了构造方法和析构方法时,父类的构造方法和析构方法不会被自动调用,所以需要明确的提出需要调用父类的构造方法和析构方法。

(也可以看作子类没有定义构造方法和析构方法时,会自动调用父类的构造方法和析构方法,可以省略调用的语句。)

------显式调用父类的构造方法和析构方法------
'; /* 父类 */ class People{ public $name; //公有属性 private $age; //私有属性 //父类的构造方法 function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function Introduce(){ //公有方法 echo '我叫'.$this->name.',年芳'.$this->age.'
'; //在类内部的方法中访问该类的成员属性 } //父类的析构方法 function __destruct(){ echo '父类的析构方法被调用
'; } } /* 子类 */ class Student extends People{ //定义一个叫Student的类并继承People类所具有的属性和方法 public $school; //公有属性 function __construct($name,$age,$school){ //显式调用父类的构造方法 parent::__construct($name,$age); $this->school = $school; } public function getSchool(){ //公有方法 echo '本府毕业于'.$this->school.'
'; //在类内部的方法中访问该类的成员属性 } function __destruct(){ echo '子类的析构方法被调用
'; //显式调用父类的析构方法 parent::__destruct(); } } $s = new Student('沫沫',20,'庐山皇家学院'); //实例化子类 echo '本府行不更名坐不改姓,'.$s->name.'是也!
'; //调用继承自父类的属性 $s->Introduce(); //调用继承自父类的方法 $s->getSchool(); //调用子类的方法 //$s被销毁,默认调用子类的析构方法?>

转载于:https://www.cnblogs.com/id88/p/11069051.html

你可能感兴趣的文章
rpc远程过程协议调用
查看>>
负载均衡
查看>>
梦网云通讯API接口调用错误代码表
查看>>
微信小程序canvas生成的图片保存在相册文字错乱的问题
查看>>
详解响应式布局设计
查看>>
jQuery动画animate()的使用
查看>>
Think in ISP(image sensor pipe )之How to implement an effecitive AE
查看>>
Linux阅读笔记(一)
查看>>
Android五天乐(第三天)ListFragment与ViewPager
查看>>
201521123076 《Java程序设计》第10周学习总结
查看>>
c++ primer 5th 笔记:第六章
查看>>
并发无锁队列
查看>>
POI创建Excle
查看>>
itext 生成 PDF(一)
查看>>
Zabbix触发器支持的函数说明
查看>>
Delete和Truncate的区别
查看>>
“恋爱”,一路走来,
查看>>
show view,
查看>>
老大,httpscoop,
查看>>
立冬吃饺子
查看>>