热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP面向对象开发之类的常用关键字

php中类的常用关键字包括有:锁(fianl)、有点类似与this关键字(self)、静态属性(static)、常量关键字(const)下面我来给大家整理整

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 关键字的例子:

  1. final class Person 
  2.     ...... 

final 定义的类被继承时会提示如下错误:

Fatal error: Class Student may not inherit from final class (Person) in ...

方法使用 final 关键字的例子:

  1. class Person 
  2.     final function say() 
  3.     { 
  4.         ...... 
  5.     } 

Example #1 Final 方法示例,代码如下:

  1. class BaseClass { 
  2.    public function test() { 
  3.        echo "BaseClass::test() calledn"
  4.    } 
  5.     
  6.    final public function moreTesting() { 
  7.        echo "BaseClass::moreTesting() calledn"
  8.    } 
  9. class ChildClass extends BaseClass { 
  10.    public function moreTesting() { 
  11.        echo "ChildClass::moreTesting() calledn"
  12.    } 
  13. // 产生 Fatal error: Cannot override final method BaseClass::moreTesting() 
  14. ?> 

Example #2 Final 类示例,代码如下:

  1. final class BaseClass { 
  2.    public function test() { 
  3.        echo "BaseClass::test() calledn"
  4.    } 
  5.     
  6.    // 这里无论你是否将方法声明为final,都没有关系 
  7.    final public function moreTesting() { 
  8.        echo "BaseClass::moreTesting() calledn"
  9.    } 
  10. class ChildClass extends BaseClass { 
  11. // 产生 Fatal error: Class ChildClass may not inherit from final class (BaseClass) 
  12. ?> 

2.关键字:self

在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。

另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this

格式:self::类内部成员(属性或者方法)

|| 等价于

类名::类内部成员(属性或者方法)

注意:因为没有数理化类访问内部属性或方法是没有意义的,所以self一般用来访问类中的:静态成员,常量,其他定义的内容。

3.关键字:static

内存优化,用来定义静态属性或方法,可以在类未被实例化时就能使用。静态属性单独占用内存,而不会因创建多个对象而重复占用内存。

格式:

  1. class class1 { 
  2. static $name
  3. static function fun1 { 
  4. ... 

静态成员的访问(类内部):

self::静态成员

类名称::静态成员

静态成员的访问(类外部):

类名称::静态成员

4.关键字:const

用来定义类中的常量,只能修饰类当中的成员属性。

格式:

  1. class class1 { //建议用大写定义,不使用$符号。 
  2. const NAME; 
  3. ... 

看个PHP const小例子吧,代码如下:

  1. class say_const{    
  2. const CHARSET="中国";    
  3. publice function say_hello() 
  4. {    
  5. echo slef::CHARSET;    
  6. }    
  7. }    
  8. $const1=new say_const()    
  9. $const1->say_hello();    
  10. ?> 

推荐阅读
  • 随着科技的进步,AR智能眼镜正逐渐成为日常生活的一部分。今年冬天,一款仅重38克的AR智能眼镜成为了市场上的焦点,其超轻设计和创新功能值得我们深入了解。 ... [详细]
  • 本文探讨了如何在C#应用程序中有效处理来自两个不同数据库的数据,特别是当需要从一个数据库中选择不在另一个大型集合中的ID时遇到的挑战和解决方案。 ... [详细]
  • Java 动态代理详解与示例
    本文详细介绍了Java中的动态代理机制,包括如何定义接口、实现类和代理处理器,并通过具体示例演示了动态代理的创建和使用过程。 ... [详细]
  • LeetCode 6057: 计算与子树平均值相等的节点数量——深度优先搜索
    本题要求在给定的二叉树中找到所有符合条件的节点数量,即节点的值等于其所有后代节点(包括自身)值的平均值。这里的平均值是通过将所有后代节点值之和除以后代节点的数量,并向下取整得到。 ... [详细]
  • CSGO
    CSGOTimeLimit:40002000MS(JavaOthers)MemoryLimit:524288524288K(JavaOthers)ProblemDescriptio ... [详细]
  • 本文介绍了如何通过自定义View中的declare-styleable属性创建枚举类型,并在代码中访问这些枚举值的方法。 ... [详细]
  • 本文汇集了使用C#中不同HTTP客户端向Web API上传文件的实例,旨在为开发者提供实用的技术指南。 ... [详细]
  • 本文详细介绍了在PHP中如何创建新文件以及如何使自定义函数在整个项目中全局可用的方法,包括最新的实践技巧。 ... [详细]
  • 解决Android开发中的TextView难题
    探讨了在Android开发过程中遇到的关于TextView组件的常见问题,特别是如何实现多行文字的跑马灯效果,并提供了初步的解决方案和参考资料。 ... [详细]
  • Only2 Labs 是一家专注于视觉设计的工作室,如果您对当前的设计感到不满,或者急需寻找一个可靠的设计合作伙伴,甚至是您的团队项目需要专业指导,Only2 Labs 都将竭诚为您提供帮助。 ... [详细]
  • 解决phpMyAdmin运行错误:mysqli_init(): 属性访问尚未允许
    本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ... [详细]
  • 本文探讨了Windows Presentation Foundation (WPF)如何通过扩展Microsoft Build Engine (MSBuild)来增强其构建能力,特别是在处理WPF特有的任务时。 ... [详细]
  • 本文探讨了在执行SQL查询时遇到的因字符集不同而导致查询结果差异的问题,特别是涉及中文字符时。文章分析了在不同字符集设置下,SQL查询结果的变化,并提供了详细的解决方案。 ... [详细]
  • 本文探讨了如何在JavaScript中调用PHP函数及实现两者之间的有效交互,包括通过AJAX请求、动态生成JavaScript代码等方法。 ... [详细]
  • 深入解析PHP Xdebug的安装与应用
    本文详细介绍了PHP Xdebug的安装步骤及其在PHP开发中的重要作用。Xdebug作为一款强大的调试工具,不仅能够帮助开发者追踪代码执行过程,还能有效提升代码质量和系统性能。 ... [详细]
author-avatar
捡到宝开封
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有