PHP面向对象开发之类的常用关键字
发布:smiling 来源: PHP粉丝网 添加日期:2014-02-10 17:13:50 浏览: 评论:0
php中类的常用关键字包括有:锁(fianl)、有点类似与this关键字(self)、静态属性(static)、常量关键字(const)下面我来给大家整理整理。
类中的常用关键字
1.fianl:锁
2.self:有点类似与this关键字
3.static:静态属性
4.const:常量关键字
1.关键字:fianl
用来定义类和方法的一个重要关键字,当定义类的时候该类不能被继承,用来定义方法的时候该方法不能被重载。
1. final不成修饰成员属性(类中常不是用这个关键字)
2. final只能修饰类和方法
作用:
使用final修饰的类 不 能被子类继承
使用final修饰的方法不能被子类去覆盖
用来限制类不被继承,方法不被覆盖就使用fianl
类使用 final 关键字的例子:
- final class Person
- {
- ......
- }
final 定义的类被继承时会提示如下错误:
Fatal error: Class Student may not inherit from final class (Person) in ...
方法使用 final 关键字的例子:
- class Person
- {
- final function say()
- {
- ......
- }
- }
Example #1 Final 方法示例,代码如下:
- <?php
- class BaseClass {
- public function test() {
- echo "BaseClass::test() calledn";
- }
- final public function moreTesting() {
- echo "BaseClass::moreTesting() calledn";
- }
- }
- class ChildClass extends BaseClass {
- public function moreTesting() {
- echo "ChildClass::moreTesting() calledn";
- }
- }
- // 产生 Fatal error: Cannot override final method BaseClass::moreTesting()
- ?>
Example #2 Final 类示例,代码如下:
- <?php
- final class BaseClass {
- public function test() {
- echo "BaseClass::test() calledn";
- }
- // 这里无论你是否将方法声明为final,都没有关系
- final public function moreTesting() {
- echo "BaseClass::moreTesting() calledn";
- }
- }
- class ChildClass extends BaseClass {
- }
- // 产生 Fatal error: Class ChildClass may not inherit from final class (BaseClass)
- ?>
2.关键字:self
在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。
另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this
格式:self::类内部成员(属性或者方法)
|| 等价于
类名::类内部成员(属性或者方法)
注意:因为没有数理化类访问内部属性或方法是没有意义的,所以self一般用来访问类中的:静态成员,常量,其他定义的内容。
3.关键字:static
内存优化,用来定义静态属性或方法,可以在类未被实例化时就能使用。静态属性单独占用内存,而不会因创建多个对象而重复占用内存。
格式:
- class class1 {
- static $name;
- static function fun1 {
- ...
- }
- }
静态成员的访问(类内部):
self::静态成员
类名称::静态成员
静态成员的访问(类外部):
类名称::静态成员
4.关键字:const
用来定义类中的常量,只能修饰类当中的成员属性。
格式:
- class class1 { //建议用大写定义,不使用$符号。
- const NAME;
- ...
- }
看个PHP const小例子吧,代码如下:
- <?php
- class say_const{
- const CHARSET="中国";
- publice function say_hello()
- {
- echo slef::CHARSET;
- }
- }
- $const1=new say_const()
- $const1->say_hello();
- ?>
Tags: 面向对象 开发 常用 关键字
相关文章
- ·PHP 面向对象 继承(2013-11-14)
- ·PHP面向对象之private权限控制(2013-11-14)
- ·PHP面向对象开发——封装关键字(2013-11-14)
- ·几个PHP面向对象小实例(2013-12-08)
- ·PHP中的面向对象和面向过程(2013-12-08)
- ·PHP面向对象开发之魔术函数详解(2014-02-10)
- ·PHP面向对象开发之类的多态详解(2014-02-10)
- ·PHP面向对象开发之类中接口的应用(interface、implements)(2014-02-10)
- ·php面向对象开发学习笔记(2014-02-11)
- ·php面向对象 $this关键字用法详解(2014-02-20)
- ·php面向对象__toString() 用法详解(2014-02-20)
- ·php面向对象__call处理错误调用技巧(2014-02-20)
- ·php面向对象中子类中重载父类详解(2014-02-20)
- ·php入门教程之面向对象(2014-02-22)
- ·php面向对象之抽像类、接口、final、类常(2014-03-26)
- ·PHP面向对象概念与实例(2014-03-31)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)