文档章节

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

PHer
 PHer
发布于 2014/09/10 17:05
字数 804
阅读 18
收藏 1

1析构方法会自动调用

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

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


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

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

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

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

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


类的析构方法:

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

②析构方法没有返回值

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

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

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


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

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

                                      $dfd="";

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

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

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

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


静态方法的特点

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

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


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

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


 final关键字

1.      如果我们希望某个类不被其它的类来继承(可能因为安全考虑...), 可以使用final
<?php
       final class A{
              
       }
       class B extends A{
       }
       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::常量的名称 类名::常量的名称
在类的外部使用 类名::常量的名称.





本文转载自:http://blog.csdn.net/newoner/article/details/9977915

PHer
粉丝 4
博文 121
码字总数 38443
作品 0
成都
程序员
私信 提问
PHP面向对象精要

1 使用extends实现继承以及重载、魔术方法的含义 class B extends A 声明的时候B里可以没有A里的方法 调用的时候$b=new B(); $b->A里的方法(); $b->A里的属性=1; $b->B里的方法(); $b->B里的...

晨曦之光
2012/03/09
58
0
PHP面向对象精要

1 使用extends实现继承以及重载、魔术方法的含义 class B extends A 声明的时候B里可以没有A里的方法 调用的时候$b=new B(); $b->A里的方法(); $b->A里的属性=1; $b->B里的方法(); $b->B里的...

晨曦之光
2012/03/09
131
0
PHP中关于面向对象程序设计的相关简介

PHP面向对象程序设计 面向对象的程序设计(Object Oriented Programming) 一、面向对象程序设计的概念 PHP引进的面向对象的设计方法,将数据及处理数据的相应函数“封装”到一个“类(class...

PXZ6603
2016/08/20
0
0
C++ Primer Plus(十)——对象和类

采用OOP方法时,首先从用户的角度考虑对象——描述对象所需的数据以及描述用户与数据交互所需的操作,完成对接口的描述后,需要确定如何实现接口和数据存储,最后使用新的设计方案 创建出程序...

吃一堑消化不良
2016/01/15
60
0
面向对象学习笔记整理

面向对象学习笔记整理 对象类型在内存中的分配 1:内存结构 栈空间段(后进先出):空间小被CPU访问速度快,用于存放程序中的临时变量,方便用于保存和恢复调用现场,主要存放占用空间小的数...

雨醉风尘
2016/09/02
35
0

没有更多内容

加载失败,请刷新页面

加载更多

typescript 接口 函数类型 可索引类型

函数类型 可索引类型 数字索引签名 字符串索引签名 数字索引签名返回值 必须是 字符串索引签名返回值的子集 只读索引签名

lilugirl
今天
3
0
Oracle SQL语法实例合集

如需转载请注明出处https://my.oschina.net/feistel/blog/3052024 目的:迅速激活Oracle SQL 参考:《Oracle从入门到精通》 ------------------------------------------------------------......

LoSingSang
今天
2
0
增加 PostgreSQL 服务进程的最大打开文件数

https://serverfault.com/questions/628610/increasing-nproc-for-processes-launched-by-systemd-on-centos-7 要在systemd的配置里加才行...

helloclia
今天
2
0
组合模式在商品分类列表中的应用

在所有的树形结构中最适合的设计模式就是组合模式,我们看看常用商品分类中如何使用。 先定义一个树形结构的商品接口 public interface TreeProduct { List<TreeProduct> allProducts(...

算法之名
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部