PHP学习笔记第【18】天(2014.11.25)——构造函数与析构函数
2015-04-24 15:29
274 查看
构造和析构
构造方法和析构方法构造方法
实例化对象在得到对象时,几乎都需要,对对象属性进行初始化,而且都是一样的操作,在一个操作中完成初始化,然后对该方法进行多次调用!
调用该方法初始化:
<?php
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor\n";
}
}
class OtherSubClass extends BaseClass {
// inherits BaseClass's constructor
}
// In BaseClass constructor
$obj = new BaseClass();
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();
// In BaseClass constructor
$obj = new OtherSubClass();
?>
再前进一步:
是否可以在实例化后,自动调用该初始化的方法!
Php的oop机制,在new完成时,会试着调用一个叫做 __construct()的方法。如果我们将初始化的代码,写到这个方法内,就可以完成自动初始化!
该方法,在通过类实例化对象,也叫构造对象时,被自动调用的,常常用于初始化对象,这个方法被叫做 构造方法:(此方法,就是比普通方法多了一个自动调用的功能)
由于不用去调用这个构造方法,如何传参?
在实例化时,通过在类名后,增加实参列表的形式,为构造方法传参:
此时,需要注意,实例化时,类名后,可以增加括号,取决于,该对象的构造方法,是否需要参数,如果不需要,则可以省略,或者是一个空括号。 如果需要则一定要有括号,括号内是实参列表:
需要:
构造方法的兼容性问题:
PHP5,构造方法的名字,就是__construct()。在php5之前,构造方法名字为与类同名。为了兼容,也同时支持这个与类同名的构造方法:
如果同时出现,如何处理?
先__construct(),后 Student
找,__construct,
先Student(),后 __construct
找__construct,有一个不标准的错误提示
下面的写法比较常见:
析构方法
在对象消失(对象被销毁时),也会自动执行一个方法,称之为析构方法!析构方法名字为 __destruct();
也会自动被调用!
该方法,用于释放对象所占用的额外资源,不是对象本身的内存空间!
什么情况下,对象会被销毁:
1, 脚本周期结束,自动销毁,几个对象销毁几次。
2, 销毁保存该对象的变量时:
3, 保存对象的变量,被赋值了其他数据。
任何新值都可以,甚至是原来类的新对象。都会导致原对象被销毁!
常见是使用null,表示销毁对象的含义!
$stu = null;
相关文章推荐
- php面向对象学习笔记01-面向对象介绍、构造函数、析构函数
- 【小白笔记】PHP学习之路 (20) --类的初始化、析构函数与继承
- PHP学习之十四:构造函数
- 【C\C++学习】之十八、C++11六大函数(构造函数,移动构造函数,移动赋值操作符,复制构造函数,赋值操作符,析构函数)
- 【菜鸟C++学习笔记】12.构造函数与析构函数
- 《零基础入门学习Python》学习过程笔记【41魔法方法:构造函数和析构函数】
- C/C++学习笔记:String类的构造函数、析构函数和赋值函数
- 我的C++学习之路--02.构造函数和析构函数
- c++学习——构造函数与析构函数
- 【php】利用php的构造函数与析构函数编写Mysql数据库查询类
- (原创)c#学习笔记09--定义类03--构造函数和析构函数
- C++入门学习:构造函数,拷贝构造函数(特殊情况,浅拷贝与深拷贝),析构函数
- PHP面向对象——构造函数、析构函数
- C#高级编程学习----构造函数和析构函数的用法
- Unity学习之析构函数、构造函数和this关键字
- C++ 学习总结(十)——C++类与对象,及构造函数,析构函数,拷贝构造函数
- PHP的构造函数,析构函数,(静态)变量,方法
- C++学习之构造函数、析构函数
- 利用php的构造函数与析构函数编写Mysql数据库查询类
- C++学习摘要之二:构造函数和析构函数 .