加入收藏 | 设为首页 | 会员中心 | 我要投稿 92站长网 (https://www.92zz.com.cn/)- 语音技术、视频终端、数据开发、人脸识别、智能机器人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-10-31 10:31:41 所属栏目:PHP教程 来源:网络
导读:   类中的常用关键字



  1.fianl:锁



  2.self:有点类似与this关键字



  3.static:静态属性



  4.const:常量关键字



  1.关键字:fianl



 
  类中的常用关键字
 
  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 方法示例
 
   代码如下
 
  1
 
  class BaseClass {
 
     public function test() {
 
         echo "BaseClass::test() calledn";
 
     }
 
     
 
     final public function moreTesting() {
 
         echo "BaseClass::moreTesting() calledn";
 
     }
 
  }
 
  2 class ChildClass extends BaseClass {
 
     public function moreTesting() {
 
         echo "ChildClass::moreTesting() calledn";
 
     }
 
  }
 
  // 产生 Fatal error: Cannot override final method BaseClass::moreTesting()
 
  ?>
 
  Example #2 Final 类示例
 
   代码如下
 
  1
 
  final class BaseClass {
 
     public function test() {
 
         echo "BaseClass::test() calledn";
 
     }
 
     
 
     // 这里无论你是否将方法声明为final,都没有关系
 
     final public function moreTesting() {
 
         echo "BaseClass::moreTesting() calledn";
 
     }
 
  }
 
  2 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小例子吧:
 
   代码如下
 
  1 < ?php   
 
  class say_const{   
 
  const CHARSET="中国";   
 
  publice function say_hello()
 
  {   
 
  echo slef::CHARSET;   
 
  }   
 
  }   
 
  $const1=new say_const()   
 
  $const1->say_hello();   
 
  ?>  
 

(编辑:92站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章