php靜態變數小結

來源:互聯網
上載者:User

標籤:php 靜態變數

在C 中,記憶體分成5個區,他們分別是堆、棧、自由儲存區(程式碼區)、全域/靜態儲存區和常量儲存區。1.棧,就是那些由編譯器在需要的時候分配,在無需的時候自動清除的變數的儲存區。裡面的變數通常是局部變數、函數參數等。由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於資料結構中的棧。2.堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。假如程式員沒有釋放掉,那麼在程式結束後,作業系統會自動回收。一般由程式員分配釋放, 若程式員不釋放,程式結束時可能由OS回收 。3.自由儲存區(程式碼區),就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,但是他是用free來結束自己的生命的。存放函數體的二進位代碼。4.全域/靜態儲存區,全域變數和靜態變數被分配到同一塊記憶體中,在以前的C語言中,全域變數又分為初始化的和未初始化的,在C 裡面沒有這個區分了,他們一起佔用同一塊記憶體區。全域變數和靜態變數的儲存是放在一塊的,初始化的全域變數和靜態變數在一塊地區, 未初始化的全域變數和未初始化的靜態變數在相鄰的另一塊地區。 - 程式結束後由系統釋放5.常量儲存區,這是一塊比較特別的儲存區,他們裡面存放的是常量,不允許修改,常量字串就是放在這裡的。 程式結束後由系統釋放<?php    Class Person{        // 定義靜態成員屬性        public static $country = "我是靜態變數";        // 定義靜態成員方法        public static function myCountry() {            // 內部訪問靜態成員屬性            echo "我是靜態方法訪問靜態變數:".self::$country."<br />";//self訪問本身的類,這裡是Person類            //::是範圍限定操作符,這裡用的是self範圍,而不是$this範圍,$this範圍只表示類的當前執行個體,self::表示的是類本身。        }    }    class Student extends Person {        function study() {            echo "我繼承的靜態方法訪問靜態變數:". parent::$country."<br />";            //parent是指向父類的指標,一般我們使用parent來調用父類的建構函式。parent 表示訪問父級的屬性或方法        }    }    // 通過類名訪問輸出成員屬性值    echo Person::$country."<br />";  // 輸出:我是靜態變數       //echo $p1->country;   // 錯誤寫法    // 通過類名訪問靜態成員方法    Person::myCountry();   // 輸出:我是靜態方法訪問靜態變數:我是靜態變數    // 通過對象訪問靜態方法:    $p1 = new Person();    $p1->myCountry();//輸出:我是靜態方法訪問靜態變數:我是靜態變數    // 子類中輸出成員屬性值    // 通過類名訪問成員屬性值    echo Student::$country."<br />"; // 輸出:我是靜態變數    // 通過類名訪問靜態成員方法    Student::myCountry();    // 通過對象訪問靜態方法:    $t1 = new Student();    $t1->study();    // 輸出:我繼承的靜態方法訪問靜態變數:我是靜態變數    //PHP中this,self,parent的區別http://www.cnblogs.com/myjavawork/articles/1793664.html

本文出自 “IT技術” 部落格,請務必保留此出處http://linuxubuntu.blog.51cto.com/4964714/1795871

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.