好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php final static const成员属性用法 - php面向对象

php final static const成员属性用法

首先来说说final 

1.final不能用来修饰成员属性 

2.final只能修饰类和方法 

作用: 被修饰的类不能被子类所继承,被修饰的方法不能被子类的方法覆盖

<?PHP   final  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" ;   }   }   // Results in Fatal error: Cannot override final method BaseClass::moreTesting()    ?>  

然后来说说static 

1.static用来修饰成员属性和成员方法,但不能用来修饰类 

2.用static修饰的成员属性可以被同一个类的所有对象共享 

3.静态的数据是存在 内存中的 数据段中(初始化静态段) 

4.静态的数据是在类在第一次加载时,分配到内存中的 

5.什么是类被加载?只要在程序中使用到这个类(有这个类名出现) 

6.静态的成员属性都要用类名去访问,不用创建对象,不用对象去访问;在类里边可以用self代表本类($this) 

7.静态方法,不能访问非静态的成员属性(但是,在非静态方法却能访问静态的成员属性),非静态的成员属性,必须用对象访问,在内部访问非静态成员属性,用$this. 

8.如果你确定一个方法中不需使用到非静态的成员属性,则可以将这个方法声明为静态方法,不需实例化对象,就可以访问

例子,演示需要静态变量的例子

<?PHP      function  Test()     {      $w3sky  = 0;      echo   $w3sky ;      $w3sky ++;     }  ?> 

静态变量与递归函数

<?PHP      function  Test()     {      static   $count  = 0;           $count ++;      echo   $count ;      if  ( $count  < 10) {     Test();     }      $count --;     }  ?> 

注: 静态变量可以按照上面的例子声明,如果在声明中用表达式的结果对其赋值会导致解析错误.

例子,声明静态变量

<?PHP      function  foo(){      static   $int  = 0; // correct       static   $int  = 1+2;    // wrong (as it is an expression)       static   $int  = sqrt(121);  // wrong (as it is an expression too)            $int ++;      echo   $int ;     }  ?> 

最后来说说const

1.它只能用来修饰成员属性 

2.在类中声明常量必须使用const 

3.访问方式和访问静态成员属性一样(类外使用 类名::成员属性,类里边则使用self::成员属性) 

4.常量一定要在声明的时候就给初始值

<?php  class  say_const{  const  CHARSET=]中国];  publice  function  say_hello(){    echo  slef::CHARSET;  }  }  $const1 = new  say_const()’  $const1 ->say_hello();  ?> 

常量只能包含标量数据(boolean,integer,float 和 string),不要定义 resource常量. 

可以用函数 constant() 来读取常量的值.get_defined_constants()可以获得所有已定义的常量列表. 

如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 [CONSTANT]),此时将发出一个 E_NOTICE 级的错误.

查看更多关于php final static const成员属性用法 - php面向对象的详细内容...

  阅读:39次