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

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

PHP進階篇

Jason PHP開發工程師
難度初級
時長 9小時28分
學習人數
綜合評分8.90
570人評價 查看評價
9.3 內容實用
8.8 簡潔易懂
8.6 邏輯清晰
  • PHP類和對象之構造函數和析構函數

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


    查看全部
  • PHP類和對象之定義類的方法

    使用關鍵字static修飾的,稱之為靜態方法,靜態方法不需要實例化對象,可以通過類名直接調用,操作符為雙冒號::

    查看全部
  • PHP類和對象之類的屬性

    默認都為public,外部可以訪問。一般通過->對象操作符來訪問對象的屬性或者方法,對于靜態屬性則使用::雙冒號進行訪問。當在類成員方法內部調用的時候,可以使用$this偽變量調用當前對象的屬性。

    受保護的屬性與私有屬性不允許外部調用,在類的成員方法內部是可以調用的。

    查看全部
  • PHP類和對象之創建一個對象

    //方法內部可以使用$this偽變量調用對象的屬性或者方法


    查看全部
  • 數組就是一個鍵值對組成的語言結構

    查看全部
    0 采集 收起 來源:PHP數組定義

    2020-02-22

  • 數組就是一個鍵值對組成的語言結構,鍵類似于酒店的房間號,值類似于酒店房間里存儲的東西。

    查看全部
    0 采集 收起 來源:PHP數組定義

    2020-02-22

  • 數組就是一個鍵值對組成的語言結構,鍵類似于酒店的房間號,值類似于酒店房間里存儲的東西。

    查看全部
    0 采集 收起 來源:PHP數組定義

    2020-02-22

  • PHP數據庫操作之更新與刪除數據

    數據的更新與刪除相對比較簡單,只需要構建好相應的sql語句,然后調用mysql_query執行就能完成相應的更新與刪除操作。

    $sql?=?"update?user?set?name?=?'曹操'?where?id=2?limit?1";?if?(mysql_query($sql))?{?????echo?'更新成功';?}

    同樣的刪除可以使用類似以下的代碼:

    $sql?=?"delete?from?user?where?id=2?limit?1";?if?(mysql_query($sql))?{?????echo?'刪除成功';?}

    對于刪除與更新操作,可以通過mysql_affected_rows函數來獲取更新過的數據行數,如果數據沒有變化,則結果為0。

    $sql?=?"update?user?set?name?=?'曹操'?where?id=2?limit?1";?if?(mysql_query($sql))?{?????echo?mysql_affected_rows();


    查看全部
  • 當我們了解了如何使用mysql_query進行數據查詢以后,那么類似的,插入數據其實也是通過執行一個sql語句來實現,例如:

    $sql?=?"insert?into?user(name,?age,?class)?values('李四',?18,?'高三一班')";
    mysql_query($sql);?//執行插入語句

    通常數據都是存儲在變量或者數組中,因此sql語句需要先進行字符串拼接得到。

    $name?=?'李四';
    $age?=?18;
    $class?=?'高三一班';
    $sql?=?"insert?into?user(name,?age,?class)?values('$name',?'$age',?'$class')";
    mysql_query($sql);?//執行插入語句

    在mysql中,執行插入語句以后,可以得到自增的主鍵id,通過PHP的mysql_insert_id函數可以獲取該id。

    $uid?=?mysql_insert_id();

    這個id的作用非常大,通??梢杂脕砼袛嗍欠癫迦氤晒?,或者作為關聯ID進行其他的數據操作。


    查看全部
  • 數據庫建立連接以后就可以進行查詢,采用mysql_query加sql語句的形式向數據庫發送查詢指令。

    $res?=?mysql_query('select?*?from?user?limit?1');

    對于查詢類的語句會返回一個資源句柄(resource),可以通過該資源獲取查詢結果集中的數據。

    $row?=?mysql_fetch_array($res);
    var_dump($row);

    默認的,PHP使用最近的數據庫連接執行查詢,但如果存在多個連接的情況,則可以通過參數指令從那個連接中進行查詢。

    $link1?=?mysql_connect('127.0.0.1',?'code1',?'');
    $link2?=?mysql_connect('127.0.0.1',?'code1',?'',?true);?//開啟一個新的連接
    $res?=?mysql_query('select?*?from?user?limit?1',?$link1);?//從第一個連接中查詢數據


    查看全部
  • mysql擴展進行數據庫連接的方法:

    $link?=?mysql_connect('mysql_host',?'mysql_user',?'mysql_password');

    mysqli擴展:

    $link?=?mysqli_connect('mysql_host',?'mysql_user',?'mysql_password');

    PDO擴展

    $dsn?=?'mysql:dbname=testdb;host=127.0.0.1';
    $user?=?'dbuser';
    $password?=?'dbpass';
    $dbh?=?new?PDO($dsn,?$user,?$password);


    查看全部
    0 采集 收起 來源:PHP數據庫擴展

    2020-02-19

  • 一般的異常處理流程代碼為:

    try?{
    ????throw?new?Exception('wrong');
    }?catch(Exception?$ex)?{
    ????echo?'Error:'.$ex->getMessage().'<br>';
    ????echo?$ex->getTraceAsString().'<br>';
    }
    echo?'異常處理后,繼續執行其他代碼';


    查看全部
  • 關聯數組是指數組的鍵是字符串的數組。

    查看全部
  • 索引數組賦值有三種方式:

    $arr[0]='蘋果';

    array('0'=>'蘋果');

    array('蘋果');這個數組相當于array('0'=>'蘋果');

    查看全部
  • 前面的小節,我們已經接觸過訪問控制了,訪問控制通過關鍵字public,protected和private來實現。被定義為公有的類成員可以在任何地方被訪問。被定義為受保護的類成員則可以被其自身以及其子類和父類訪問。被定義為私有的類成員則只能被其定義所在的類訪問。

    類屬性必須定義為公有、受保護、私有之一。為兼容PHP5以前的版本,如果采用 var 定義,則被視為公有。

    class?Car?{
    ????$speed?=?10;?//錯誤?屬性必須定義訪問控制
    ????public?$name;???//定義共有屬性
    }

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

    class?Car?{
    ????//默認為共有方法
    ????function?turnLeft()?{
    ????}
    }

    如果構造函數定義成了私有方法,則不允許直接實例化對象了,這時候一般通過靜態方法進行實例化,在設計模式中會經常使用這樣的方法來控制對象的創建,比如單例模式只允許有一個全局唯一的對象。

    class?Car?{
    ????private?function?__construct()?{
    ????????echo?'object?create';
    ????}
    
    ????private?static?$_object?=?null;
    ????public?static?function?getInstance()?{
    ????????if?(empty(self::$_object))?{
    ????????????self::$_object?=?new?Car();?//內部方法可以調用私有方法,因此這里可以創建對象
    ????????}
    ????????return?self::$_object;
    ????}
    }
    //$car?=?new?Car();?//這里不允許直接實例化對象
    $car?=?Car::getInstance();?//通過靜態方法來獲得一個實例

    ? ? ? ? ? ? ?


    查看全部
  • 靜態屬性與方法可以在不實例化類的情況下調用,直接使用類名::方法名的方式進行調用。靜態屬性不允許對象使用->操作符調用。

    class?Car?{
    ????private?static?$speed?=?10;
    ????
    ????public?static?function?getSpeed()?{
    ????????return?self::$speed;
    ????}
    }
    echo?Car::getSpeed();??//調用靜態方法

    靜態方法也可以通過變量來進行動態調用

    $func?=?'getSpeed';
    $className?=?'Car';
    echo?$className::$func();??//動態調用靜態方法

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

    class?Car?{
    ????private?static?$speed?=?10;
    ????
    ????public?static?function?getSpeed()?{
    ????????return?self::$speed;
    ????}
    ????
    ????public?static?function?speedUp()?{
    ????????return?self::$speed+=10;
    ????}
    }
    class?BigCar?extends?Car?{
    ????public?static?function?start()?{
    ????????parent::speedUp();
    ????}
    }BigCar::start();echo?BigCar::getSpeed();

    ? ? ? ? ? ? ?


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

    class?Car?{
    ???function?__construct()?{
    ???????print?"父類構造函數被調用\n";
    ???}
    }
    class?Truck?extends?Car?{
    ???function?__construct()?{
    ???????print?"子類構造函數被調用\n";
    ???????parent::__construct();
    ???}
    }
    $car?=?new?Truck();

    同樣,PHP5支持析構函數,使用__destruct()進行定義,析構函數指的是當某個對象的所有引用被刪除,或者對象被顯式的銷毀時會執行的函數。

    class?Car?{
    ???function?__construct()?{
    ???????print?"構造函數被調用?\n";
    ???}
    ???function?__destruct()?{
    ???????print?"析構函數被調用?\n";
    ???}
    }
    $car?=?new?Car();?//實例化時會調用構造函數
    echo?'使用后,準備銷毀car對象?\n';
    unset($car);?//銷毀時會調用析構函數

    當PHP代碼執行完畢以后,會自動回收與銷毀對象,因此一般情況下不需要顯式的去銷毀對象。


    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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