php面向对象详解5
2011-12-14 20:13
344 查看
在这一节中我们会讲到php面向对象final,self,ststic,const的使用
final关键字是用来锁住某个类或方法不被继承,我们看一下这段代码
转载请注明来自multifeeling
本文标题:php面向对象详解5
本文地址:http://www.multifeeling.com/archives/152%E2%80%9D" 本文出自 “前端技术用户体验” 博客,请务必保留此出处http://minerchow.blog.51cto.com/2383198/742125
final关键字是用来锁住某个类或方法不被继承,我们看一下这段代码
<?php class demo{ public $name="minerchow"; function code(){ return "写代码"; } } class demo2 extends demo{ function code(){ return demo::code()."++"; } } $p=new demo2(); echo $p->code(); ?>
这段代码能够正常输出,但如果我们尝试在demo类中code()方法前加上final,系统报错啦
Fatal error: Cannot override final method demo::code() in D:\wamp\www\test\newfile.php on line 13
提示清楚显示不能重载final类,同理class前加上final也会出现相同情况
static用来定义静态属性和方法,
可以在类未被实例化时使用,静态属性单独占 用内存而不会因创建多个对象时而导致同样的方法或者属性重复占用。通常情况下和self同事使用
那让我们再看一下这段代码
<?php class demo{ public $name= 'minerchow'; function code(){ return $this->name."写代码"; } } class demo2 extends demo{ function code(){ return demo::code()."++"; } } $p=new demo2(); echo $p->code(); ?>
这段代码正常输出了minerchow写代码++,没有问题,现在我们把public换成static
这是我们发现$name的值minerchow并没有被显示,因为this不能获取静态属性,这是我们可以使用self
换成self::$name(注意name前有$),就能正常访问了
那么如何从外部访问静态属性呢
这时,我们可以用类名::方法名(或成员属性)
<?php final class demo{ static $name= 'minerchow'; function code(){ return self::$name."写代码"; } } echo demo::code(); ?>
最后简单说一下const用法,const表示常量,不同于变量,它无法在被修改
转载请注明来自multifeeling
本文标题:php面向对象详解5
本文地址:http://www.multifeeling.com/archives/152%E2%80%9D" 本文出自 “前端技术用户体验” 博客,请务必保留此出处http://minerchow.blog.51cto.com/2383198/742125
相关文章推荐
- PHP面向对象程序设计之类与反射API详解
- PHP面向对象详解 __set() __get() __isset() __unset()
- PHP面向对象继承用法详解(优化与减少代码重复)
- PHP面向对象详解_封装
- php面向对象详解
- PHP面向对象详解(三)
- php面向对象详解
- php面向对象详解
- PHP 面向对象详解
- PHP 面向对象详解
- PHP面向对象详解
- php面向对象详解5
- PHP面向对象程序设计之对象生成方法详解
- PHP面向对象程序设计方法实例详解
- PHP面向对象笔记 —— 121 public_protected_private权限控制详解
- PHP面向对象详解(三)
- php面向对象详解1
- PHP面向对象程序设计之命名空间与自动加载类详解
- php面向对象详解4