面向对象的类中成员-php

2025-10-09 03:40:50

1、1.实例属性和静态属性

class  类名{

var  $属性名1 = 值1; //定义实例属性,有初值

var  $属性名2 ;  //定义实例属性,无初值;

static  $属性名3 = 值3; //定义静态属性,有初值

static  $属性名4 ;  //定义静态属性,无初值;

//其实,是静态属性,是在属性名前面加上“static”关键字

}

实例属性:

它是“隶属于”对象的属性;

每new(实例化)一个对象,则该对象上就具有了该实例属性。

使用形式:

$对象->实例属性名;

可见,实例属性,是通过对象来使用它;

静态属性:

它是“隶属于”该类本身——而不隶属于对象。

即使new很多个对象,也只有一个该属性——即只能保存一份数据;

使用形式:

类名::$静态属性名;

可见:静态属性,是通过类来使用它;

面向对象的类中成员-php

2、2.实例方法和静态方法

实例方法:

定义形式:

function  方法名(形参1,形参2,...) {  .....   }

使用形式:

$对象->方法名(实参1,实参2,....);

实例方法也是“隶属于”对象;

不过,因为方法不是“容器”,不是“数据”,而是一段可执行的代码;

注意:多个不同的对象,调用一个共同的方法,也只是调用而已,并不像实例属性一样,区分“你的”还是“我的”

静态方法:

定义形式:

static  function  方法名(形参1,形参2,...) {  .....   }

使用形式:

类名::方法名(实参1,实参2,....);

静态方法也是“隶属于”类;

$this关键字

一个关键理解:$this代表调用其($this词)所在的那个方法的对象本身。

可见:

1,$this本身其实一个“变量”,属于系统内部的特殊变量;

2,$this这个词只能放在一个类中的一个方法中——通常都是实例方法中。

面向对象的类中成员-php

3、3.self关键字

代表其所在的类本身。

它只能写在一个类中——甚至是只能写在一个类的一个方法中。

对比:

$this:

代表对象——调用其所在方法的对象;

通常,在实例方法中出现;

使用形式:$this->实例属性或实例方法()

self:

代表类——其本身所在的类

在静态方法或实例方法中都可以出现;

使用形式:self :: 静态属性或静态方法();

小总结:

$对象->实例属性;

$对象->实例方法;其中方法中可以出现:$this,self,

类名::静态属性;

类名::静态方法; 其中方法中可以出现:self,

面向对象的类中成员-php

4、4.构造方法:__construct()

概念:

构造方法就是一个系统已经规定其名字,并且只在new一个对象的时候自动执行的方法;

class  A{

function __construct(){

//这就是构造方法;

}

}

$a1 = new  A(); //此时,就会调用上面的那个构造方法;

构造方法的作用:

是给予我们一个“机会”,让我们在实例化一个对象的时候(new的时候),能够去做一些这个时刻需要的“初始化工作”——通常就是在此时可以给该实例化出来的对象的属性赋初值——即“对象初始化”;

举例:

面向对象的类中成员-php

5、5.如果有构造方法,则就变成这样:

面向对象的类中成员-php

6、6.析构方法:__destruct()

析构方法,是一个在对象被“销毁”的时候,会自动调用的方法;

对比:

构造方法,是一个在对象被“创建”的时候,会自动调用的方法;

注意:

构造方法不是用来创建对象的;

析构方法不是用来销毁对象的;

析构方法的作用:

一般都没什么用!——php早就已经对绝大多数资源(数据)实现了自动回收(清理)机制。

但是,它给我们一个“机会”,让我们可以在一个对象被销毁的时候,有时机去做一些可能需要做的“清理工作”。

说明:

1,析构方法中,也可以使用$this这个关键字,代表正要销毁的该对象本身。

2,析构方法不可以带形参。

可见:

1,我们可以使用unset()来人为主动销毁一个对象——当一个对象没有变量指向它的时候,就会被销毁

2,如果我们不销毁,则系统在程序运行完全结果后,会去销毁对象;并且此时销毁的顺序跟其创建的顺序相反。

面向对象的类中成员-php

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢