PHP面向对象学习四 类的关键字

1、关键字final
用来定义类和方法的一个重要关键字,当定义类的时候该类将不能被继承,
当用来定义方法的时候该方法将不能被重载
2、关键字static
用来定义类的静态属性或方法,可以在类未被实例化时使用,静态属性单独占
用内存而不会因创建多个对象时而导致同样的方法或者属性重复占用。(如果当前类被实例化100次,静态属性只会占用一份内存,而非静态属性则占用100份内存)
class class1{
 
   static $name;
   static function fun1(){
    ……//静态方法内部禁止出现非静态内容,如$this
   }
}静态成员的访问:
内部访问:self::静态成员
类外部访问: 类名称::静态成员
 
3、关键字self
用来用类访问当前类中的内容的关键字,类似与$this关键字,但$this是需要
类实例化以后才可以使用,self 可以直接访问当前类中的内部成员
self :: 类内部成员(属性或者方法)<=> 类名 :: 类内部成员(属性或者方法)
注意:因为没有实例化类访问内部属性或者方法是没有意义的,
           所以self一般用来访问类中的:静态成员,常量,或者其他定义内容
 
4、关键字const
用来定义类中的常量,类似PHP外部定义常量的关键字define();  Const只能
修饰类当中的成员属性!常量是不能改变的。
class class1{
    const NAME;
      function fun1(){
    ……
   }
}
1、建议大写常量
 
2、常量不使用$符号
测试代码:
<?php
  /*class MyPc{
 public $name='我的电脑';
 final function power(){
 echo $this->name."-电脑开机中……";
 }
 }
 class Pc extends MyPc{
 function power(){
 echo MyPC::power().$this->name."-PC开机中……";
 }
 }
 $obj= new Pc();
 $obj->power();*/
 final class MyPc{
const NAME='我的NAME';
 static $name='我的电脑';
  static function power(){
 echo self::$name."-self访问静态属性……<br/>";
 echo self::NAME."-self访问常量。。。";
 }
 }
 echo MyPc::power()."<br/>";
 echo MyPc::NAME;
?>
View Code
原文地址:https://www.cnblogs.com/xtmp/p/3618308.html