當前位置:首頁 > PHP教程 > php面向對象 > 列表

php final static const成員屬性用法

發布:smiling 來源: PHP粉絲網  添加日期:2014-05-21 09:51:50 瀏覽: 評論:0 

首先來說說final 

1.final不能用來修飾成員屬性 

2.final只能修飾類和方法 

作用:被修飾的類不能被子類所繼承,被修飾的方法不能被子類的方法覆蓋

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

然后來說說static 

1.static用來修飾成員屬性和成員方法,但不能用來修飾類 

2.用static修飾的成員屬性可以被同一個類的所有對象共享 

3.靜態的數據是存在 內存中的 數據段中(初始化靜態段) 

4.靜態的數據是在類在第一次加載時,分配到內存中的 

5.什么是類被加載?只要在程序中使用到這個類(有這個類名出現) 

6.靜態的成員屬性都要用類名去訪問,不用創建對象,不用對象去訪問;在類里邊可以用self代表本類($this) 

7.靜態方法,不能訪問非靜態的成員屬性(但是,在非靜態方法卻能訪問靜態的成員屬性),非靜態的成員屬性,必須用對象訪問,在內部訪問非靜態成員屬性,用$this. 

8.如果你確定一個方法中不需使用到非靜態的成員屬性,則可以將這個方法聲明為靜態方法,不需實例化對象,就可以訪問

例子,演示需要靜態變量的例子

  1. <?PHP 
  2.    function Test() 
  3.    { 
  4.    $w3sky = 0; 
  5.    echo $w3sky
  6.    $w3sky++; 
  7.    } 
  8. ?> 

靜態變量與遞歸函數

  1. <?PHP 
  2.    function Test() 
  3.    { 
  4.    static $count = 0; 
  5.     
  6.    $count++; 
  7.    echo $count
  8.    if ($count < 10) { 
  9.    Test(); 
  10.    } 
  11.    $count--; 
  12.    } 
  13. ?> 

注:靜態變量可以按照上面的例子聲明,如果在聲明中用表達式的結果對其賦值會導致解析錯誤.

例子,聲明靜態變量

  1. <?PHP 
  2.    function foo(){ 
  3.    static $int = 0;// correct 
  4.    static $int = 1+2;   // wrong (as it is an expression) 
  5.    static $int = sqrt(121); // wrong (as it is an expression too) 
  6.     
  7.    $int++; 
  8.    echo $int
  9.    } 
  10. ?> 

最后來說說const

1.它只能用來修飾成員屬性 

2.在類中聲明常量必須使用const 

3.訪問方式和訪問靜態成員屬性一樣(類外使用 類名::成員屬性,類里邊則使用self::成員屬性) 

4.常量一定要在聲明的時候就給初始值

  1. <?php 
  2. class say_const{ 
  3. const CHARSET=”中國”; 
  4. publice function say_hello(){ 
  5.  echo slef::CHARSET; 
  6. $const1=new say_const()’ 
  7. $const1->say_hello(); 
  8. ?> 

常量只能包含標量數據(boolean,integer,float 和 string),不要定義 resource常量. 

可以用函數 constant() 來讀取常量的值.get_defined_constants()可以獲得所有已定義的常量列表. 

如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字符串調用它一樣(CONSTANT 對應 “CONSTANT”),此時將發出一個 E_NOTICE 級的錯誤.

Tags: final static const 屬性 成員

分享到:

天气网首页彩吧