php类和对象详解 [ 新手入门 ]
作者:鲁鲁槟 出处:http://www.luluqi.cn/post/default/show-post?id=98 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
一、基本概念
1、对象:统一管理属于同一事物的变量,这就是对象
2、分析对象在内存中的存在形式(重要)
class Person
{
public $name;
public $age;
}
$a = new Person(); .
$a->name = 'luluyii';
$a->age = 20;
$b = $a;
二、构造方法 _ _construct
1、构造方法是类的一种特殊方法,它主要作用是完成对新对象的初始化。
2、特点:构造方法没有返回值,是自动被调用的。
3、构造方法的形式
php 4中构造方法的名字和类型一致 class Person{ public function Person(){} }
php5中一个类可以同时有两种形式的构造方法:_ _construct()和类名(),当两个方法同时存在时,优先调用_ _construct()
4、一个类有且只有一个构造方法,在php5后虽然_ _ construct()和类名()可以共存,但实际也只能使用一个
5、如果没有给类自定义构造方法,则该类默认使用系统的构造方法
6、构造方法的默认访问修饰符是public
三、析构方法 _ _destruct
1、基本概念
(1)php5之后加入的,主要作用是释放资源,并不是销毁对象本身。
(2)在销毁对象前,系统会自动调用该类的析构方法
(3)一个类最多只有一个析构方法
2、说明
(1)析构方法调用顺序:先创建的对象资源后被释放
(2)析构方法被调用时间:当程序退出,即进程结束时;当一个对象成为垃圾对象时;
(3)垃圾对象是指没有任何变量再引用它
3、案例1
$p1 = new Person("luluyii",1);
$p2 = new Person("lulubin",2);
解释:
(1)栈的先入后出,由于$p1先进栈,故$p2先出栈
(2)垃圾对象:当指向堆区的箭头消失时,如①消失,则堆区中0x12成为垃圾对象
(3)让对象成为垃圾对象:$p1 = null;
(4)当0x12成为垃圾对象时,会先被立即调用,即先调用$p1再调用$p2
4、案例2
class Person
{
public $name;
public $age;
//构造方法
public function _ _construct($name,$age){
$this->name = $name;
$this->age = $age;
}
//析构方法
public function _ _destruct(){
echo $this->name."销毁资源";
}
}
$p1= new Person("luluyii",1);
$p2= new Pserson("lulubin",2);
输出:luluyii销毁资源 lulubin销毁资源
$p1 = new Person("luluyii",1);
$p1 = null;
$p2 = new Pserson("lulubin",2);
输出:lulubin销毁资源 luluyii销毁资源
共 1 条回复
鲁鲁槟 东莞
注册时间:2015-12-02
最后登录:2024-08-09
在线时长:124小时36分
最后登录:2024-08-09
在线时长:124小时36分
- 粉丝110
- 金钱5620
- 威望140
- 积分8260