您的位置:首页 > 编程语言 > PHP开发

PHP面向对象之析构方法,以及关键字static

2014-09-10 00:00 453 查看
1析构方法会自动调用

2析构方法主要用于销毁资源

3析构方法调用顺序是先创建的对象后销毁

析构方法在什么时候调用:

①当程序(进程)结束退出时

②当一个对象成为了垃圾对象的时候,该改对象的析构方法也会被调用

③所谓的垃圾对象是指一个对象已经脱离了应用。

④一旦成为了垃圾对象,该对象所占有的资源就会立马被回收。

类的析构方法:

①php5加入析构方法:function __destruct()

②析构方法没有返回值

③主要作用是为了释放资源,并不是销毁对象本身

④销毁对象钱,系统会自动调用析构方法(销毁对象发生在调用析构函数之前,由系统自己去执行销毁)

⑤一个类最多只有一个析构方法。

全局变量的定义和赋值要分开

静态变量定义方法:public static $dfd;

$dfd="";

访问静态变量的基本方式:①在类外部 类名::$静态变量名

②在类北部 类名::$静态变量名 或者 类名::$静态变量名

静态变量并不依赖于对象的创建与否。

在实际编程过程中,我们往往需要使用静态方法去操作静态变量,但是不能操作非静态属性

静态方法的特点

1 静态方法去操作静态变量

2静态方法不能操作非静态变量

注意事项:普通的成员方法既可以操作静态变量,也可以操作非静态变量

成员方法里面可以调用其他成员方法 但是需要使用$this来引用。

final关键字

1. 如果我们希望某个类不被其它的类来继承(可能因为安全考虑...), 可以使用final

<?php

final class A{

}

class B extends A{

&nb
3ff0
sp; }

echo "ok";

?>

2. 如果我们希望某个方法,比如计算个人所得税的方法,不能子类改写,可以使用fianl 来修饰方法

class A{

final public function getRate($salary){

return $salary*0.08;

}

}

class B extends A{

//不能去覆盖父类的getRate方法.

/*public function getRate($sal){

return $sal*0.01;

}*/

}

$b=new B();

echo $b->getRate(100);

3. final关键字不能去修饰属性.
const 关键字的讲解

//当你有一个属性,不希望被修改,则考虑使用const 做成常量

基本用法是

class A{

const 常量名=赋初值;

}

interface 接口名{

const 常量名=赋初值;

}

常量是public

使用 类名::常量名; 接口名::常量

<?php

class A{

//常量在定义的时候,必须给初值.

//const 关键字前面不要带修饰符号.

const TAX_RATE=0.08;

public function payTax($val){

//常量不能修改.

//A::TAX_RATE=0.01;

//return $val*self::TAX_RATE; 【ok】

return $val*A::TAX_RATE; //【ok】

}

}

$a=new A();

echo $a->payTax(200);

?>

1. 常量在定义的时候需要赋初值

2. 常量不能修改.

3. 常量名不能有 $, 一般是大写, 默认是public

4. 常量在类的内部使用 self::常量的名称 类名::常量的名称

在类的外部使用 类名::常量的名称.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP 面向对象