亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

PHP進階篇

Jason PHP開發工程師
難度初級
時長 9小時28分
學習人數
綜合評分8.90
570人評價 查看評價
9.3 內容實用
8.8 簡潔易懂
8.6 邏輯清晰
    1. 類屬性必須定義為公有、受保護、私有之一

    2. (為兼容PHP5以前的版本,如果采用 var 定義,則被視為公有。)

    3. 類中的方法可以被定義為公有、私有或受保護。如果沒有設置這些關鍵字,則該方法默認為公有。

    查看全部
  • 構造函數:__construct()

    子類中如果定義了__construct則不會調用父類的__construct,如果需要同時調用父類的構造函數,需要使用parent::__construct()顯式的調用。

    析構函數:__destruct() ——銷毀函數

    查看全部
  • 方法就是在類中的function,

    類的方法也具有public,protected 以及?private 的訪問控制。

    查看全部
  • 類中定義的變量,通常屬性跟數據庫中的字段有一定的關聯,因此也可以稱作“字段”。

    屬性聲明是由關鍵字 public,protected 或者 private 開頭,后面跟一個普通的變量聲明來組成。

    public:公開的
    protected:受保護的
    private:私有的

    查看全部
  • 類通過關鍵字class開頭,然后是類名與花括號,

    在花括號中定義類的屬性與方法。

    類名必須是字母或下劃線開頭,后面緊跟若干個字母、數字或下劃線,

    類名最好能夠表意,可以采用名詞或者英文單詞。

    查看全部
  • 看了一遍大家的評論 筆記 ?代碼 ?無不是為了湊這個60而強行解釋
    這里重寫父類方法了 ?實例化的也是子類對象 ?強行parent又何必呢?而且你們理解的累加不是+=?學習不能自欺欺人


    如果為了跳過檢查,完成本節代碼驗證,這樣做也可:


    <?php
    class Car {
    ??? public $speed = 0; //汽車的起始速度是0
    ?? ?
    ??? public function speedUp() {
    ??????? $this->speed += 10;
    ??????? return $this->speed;
    ??? }
    }
    //定義繼承于Car的Truck類
    class Truck extends Car{
    ??????? //public $speed = 0; //汽車的起始速度是0
    ?? ?
    ??? public function speedUp() {
    ??????? $this->speed = 60;
    ??????? return $this->speed;
    }
    }
    $car = new Truck();
    $car->speedUp();
    echo $car->speed;

    查看全部
  • //在這里設置name的session值為jobs

    session_start();

    $_SESSION['name']='jobs';

    查看全部
    0 采集 收起 來源:使用session

    2023-03-29

  • <?php

    //開始使用session

    session_start();

    //設置一個session

    $_SESSION['test'] = time();

    //顯示當前的session_id

    echo "session_id:".session_id();

    echo "<br>";


    //讀取session值

    echo $_SESSION['test'];


    //銷毀一個session

    unset($_SESSION['test']);

    echo "<br>";

    var_dump($_SESSION);

    查看全部
  • Cookie是存儲在客戶端瀏覽器中的數據,我們通過Cookie來跟蹤與存儲用戶數據。一般情況下,Cookie通過HTTP headers從服務端返回到客戶端。多數web程序都支持Cookie的操作,因為Cookie是存在于HTTP的標頭之中,所以必須在其他信息輸出以前進行設置,類似于header函數的使用限制。

    PHP通過setcookie函數進行Cookie的設置,任何從瀏覽器發回的Cookie,PHP都會自動的將他存儲在$_COOKIE的全局變量之中,因此我們可以通過$_COOKIE['key']的形式來讀取某個Cookie值。

    PHP中的Cookie具有非常廣泛的使用,經常用來存儲用戶的登錄信息,購物車等,且在使用會話Session時通常使用Cookie來存儲會話id來識別用戶,Cookie具備有效期,當有效期結束之后,Cookie會自動的從客戶端刪除。同時為了進行安全控制,Cookie還可以設置域跟路徑。



    <?php

    setcookie('test', time());//cookie設置

    ob_start();

    print_r($_COOKIE); //任何從瀏覽器發回的Cookie都存儲在$_COOKIE的全局變量

    $content = ob_get_contents();

    $content = str_replace(" ", '&nbsp;', $content);

    ob_clean();

    header("content-type:text/html; charset=utf-8");

    echo '當前的Cookie為:<br>';

    echo nl2br($content);

    查看全部
    0 采集 收起 來源:cookie簡介

    2023-03-28

  • 3-3元字符與轉義和3-5及之后第三章跳過

    查看全部
    0 采集 收起 來源:元字符與轉義

    2023-03-28

  • 對象比較,當同一個類的兩個實例的所有屬性都相等時,可以使用比較運算符==進行判斷,當需要判斷兩個變量是否為同一個對象的引用時,可以使用全等運算符===進行判斷。

    class Car {
    }
    $a = new Car();
    $b = new Car();
    if ($a == $b) echo '=='; ? //true
    if ($a === $b) echo '==='; //false

    對象復制,在一些特殊情況下,可以通過關鍵字clone來復制一個對象,這時__clone方法會被調用,通過這個魔術方法來設置屬性的值。

    class Car {
    ? ?public $name = 'car';
    ? ?
    ? ?public function __clone() {
    ? ? ? ?$obj = new Car();
    ? ? ? ?$obj->name = $this->name;
    ? ?}
    }
    $a = new Car();
    $a->name = 'new car';
    $b = clone $a;
    var_dump($b);

    對象序列化,可以通過serialize方法將對象序列化為字符串,用于存儲或者傳遞數據,然后在需要的時候通過unserialize將字符串反序列化成對象進行使用。

    class Car {
    ? ?public $name = 'car';
    }
    $a = new Car();
    $str = serialize($a); //對象序列化成字符串
    echo $str.'<br>';
    $b = unserialize($str); //反序列化為對象
    var_dump($b);

    查看全部
  • __call實現方法的重載

    public function __call($name, $args) {
    ? ?if ($name == 'speedDown') {
    ? ? ? ?$this->speed -= 10;
    ? ?}
    }

    $args不能少

    查看全部
  • 屬性的重載通過__set,__get,__isset,__unset來分別實現對不存在屬性的賦值、讀取、判斷屬性是否設置、銷毀屬性

    方法的重載通過__call來實現,當調用不存在的方法的時候,將會轉為參數調用__call方法,當調用不存在的靜態方法時會使用__callStatic重載。

    class?Car?{
    ????public?$speed?=?0;
    ????
    ????public?function?__call($name,?$args)?{
    ????????if?($name?==?'speedUp')?{
    ????????????$this->speed?+=?10;
    ????????}
    ????}
    }
    $car?=?new?Car();
    $car->speedUp();?//調用不存在的方法會使用重載
    echo?$car->speed;
    查看全部
  • foreach($fruit as $key=>$value){

    ? ? echo '<br>鍵是:'.$key.',對應的值是:'.$value;

    }

    查看全部
  • /**

    * 新建一個Car類,舉例說明 動態 靜態 的區別(感覺也有權限控制)。 公開 私有 受保護 的訪問控制(感覺是控制訪問權限)

    靜態屬性與方法可以在不實例化類的情況下調用,直接使用類名::方法名的方式進行調用。

    靜態屬性不允許對象使用->操作符調用。


    動態方法和靜態方法,從形式上來看區別在于,有無static修飾

    靜態方法常駐內存,只能訪問靜態屬性。效率高,內存占用高

    動態方法,可以訪問靜態屬性,也可以訪問非靜態屬性。使用后消毀比靜態多一步,所以效率低于靜態,內存占用低

    */

    class Car

    {

    public $name = '汽車';//定義一個 公開 動態 屬性名字是 汽車


    //public $price = '100000';//定義一個 私有 動態 屬性價格為100000


    protected $corlor = '白色';//定義一個 受保護 動態 屬性顔色是 白色


    private $price = '100000';//定義一個 私有 動態 屬性價格為100000


    public static $speed = '10' ;//定義一個 私有 靜態 屬性初始速度值為10


    public function getPrice()

    {

    return $this->price;

    }

    public function getName()

    {

    return $this->name;

    }

    public function getSpeed()

    {

    return $this->speed;//靜態方法中,$this偽變量不允許使用。可以使用self,parent,static在內部調用靜態方法與屬性。

    }

    public function getSpeed_d()

    {

    //動態方法、普通方法、非靜態方法 都是一種方法!

    echo self::$speed."<br />";//普通方法調用靜態屬性,同樣使用self關鍵詞

    echo $this->name;

    }

    public static function getSpeed_j()

    {

    echo self::$speed."<br />";

    //echo $this->name;//錯。靜態方法不能調用非靜態屬性 Fatal error: Using $this when not in object context in /var/www/example.com/public_html/index2.php on line 56? //因為 $this代表實例化對象,而這里是類,不知道 $this 代表哪個對象

    }


    }


    echo Car::$speed;//靜態屬性與方法可以在 不實例化類 的情況下調用,直接使用 類名::方法名 的方式進行調用。不允許(實例化)對象使用 -> 操作符調用。

    echo "<br />";

    $car = new Car();//實例化 Car類 為 對象

    //echo Car->speed; 不對

    //echo $car->speed;也不對只能用下面的方式

    echo Car::$speed;//靜態屬性使用::雙冒號進行訪問

    echo "<br />";

    echo $car->name;//公開外部可以訪問

    echo "<br />";

    //echo "出錯了,錯誤原因如下,".$php_errormsg."之后的程序不能執行";

    //echo $car->corlor;//受保護外部不可訪問 無結果? ?報錯后 之下的所有 方法不能使用 屬性不可調用 不清楚為什么


    echo $car->speed;//靜態屬性不允許(實例化)對象使用 -> 操作符調用。 無結果

    echo "出錯了,錯誤原因是:".$php_errormsg;

    echo "<br />";



    //echo $car->price;//私有外部不可以訪問,無結果.只能用下面的方式,公開方法訪問 私有 受保護的屬性

    echo $car->getPrice();

    echo "<br />";

    //當然公開方法也可以訪問公開屬性

    echo $car->getName();

    echo "<br />"."到此就講明了公開、私有、受保護的訪問控制";

    echo "<br />";



    echo $car->getSpeed_d()."<br />"."普通方法調用 動態 靜態屬性";

    echo "<br />";


    echo $car->getSpeed_j()."<br />"."靜態方法調用靜態屬性,不能調用非靜態屬性";

    echo "<br />"."到此就講明了動態 靜態 的區別";

    echo "<hr />";

    查看全部

舉報

0/150
提交
取消
課程須知
需要有一定的網頁基礎知識如HTML、CSS樣式等,并且已經學習完成《PHP入門篇》對PHP已經有了簡單的了解,如變量、常量、數據類型等。
老師告訴你能學到什么?
全面的掌握PHP的理論知識與實踐中的應用方法,提高編程能力與掌握網頁開發技能。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!