php 靜態類與非靜態類

來源:互聯網
上載者:User
靜態類:類中含有static定義的 靜態屬性或方法的類

靜態類存取方法:

1、,靜態方法不需要執行個體化對象,可以通過類名直接調用,操作符為雙冒號::
Car::getName();
2、外部存取公用屬性或方法:
$car->speed;$car->speedUp();
3、內部訪問公用屬性和方法:
$this->speed;$this->speedUp();
if(empty($articleclass_id)) $this->showapp(array('msg'=>'錯誤的操作'));
4、外部存取靜態屬性或方法:
Car::getName();Car::$price;
$articleclass_id = SUtil::getStr($_GET['id'], 'int');

5、內部訪問靜態屬性

self::$price;

6、繼承類時,子類內部調用父類靜態屬性

parent::$price;

class Controller_article extends Controller_basepage {    function __construct() {        parent::__construct();    }
}

7、 如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態變數/方法,當然,調用靜態變數/方法沒有問題。

8、使用$object->… 和使用class::… 都有什麼區別:
1. 使用$object->… ,需要執行建構函式建立對象;
2. 使用class::… 調用靜態方法/變數,不需要執行建構函式建立對象;
3. 使用class::… 調用非靜態方法/變數,也不需要執行建構函式建立對象。

為什麼要有靜態類????????

--------靜態變數或者是函數是儲存的靜態記憶體中的,只有到程式結束時才會被釋放,那他是什麼時候賦值的呢

是在編譯的時候,動態類是在程式啟動並執行時候動態分配的。

如果類中調用一次,靜態類在編譯的時候需要多做工作,動態類在執行的時候需要多做工作,然而php是動態語言,每一次這兩步都不掉,所以對於只運行一次的類,無所謂誰快誰慢。

但是如果一個類在程式當中要多次調用就不一樣了,靜態類是編譯的時候就賦值了,程式之後的運行都可以直接調用過來,而不用動態分配記憶體了,就節約了時間,這就是為什麼靜態類比動態類快的原因(前提是調用多次記得)。

以上就介紹了php 靜態類與非靜態類,包括了靜態方法,靜態屬性方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.