php final static const成員屬性用法

來源:互聯網
上載者:User

標籤:

 

http://www.111cn.net/phper/php/38976.htm

首先來說說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.常量一定要在聲明的時候就給初始值

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

可以用函數 constant() 來讀取常量的值.get_defined_constants()可以獲得所有已定義的常量列表.
如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字串調用它一樣(CONSTANT 對應 “CONSTANT”),此時將發出一個 E_NOTICE 級的錯誤.

 

php final static const成員屬性用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.