PHP---初探PHP

來源:互聯網
上載者:User

標籤:服務   資料   touch   構造   data   ons   count   中文名   chrome   

  初探PHP

    雖然說前後端分離,但作為前端還是要跟資料打交道的,所以對後台語言的瞭解還是很有必要的。今天要學的就是PHP。

    什麼是PHP?

      PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本前置處理器”)是一種通用開源指令碼語言。文法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的文法混合了C、Java、Perl以及PHP自創的文法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態網頁面與其他的程式設計語言相比,PHP是將程式嵌入到HTML(標準通用標記語言 (SGML)下的一個應用)文檔中去執行,執行效率比完全產生HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和最佳化代碼運行,使代碼運行更快。

    基本文法:

      變數:建立一個變數用$標誌符聲明(PHP會根據$標識符識別變數),但變數本身不包括$標識符。

     

      輸出:PHP的輸出語句有2條: 一條是 echo語句 可以一次性輸出任意條語句 ;一條是print語句,一次只能輸出一條語句。2者的區別:echo執行速度快,沒有傳回值; print執行速度較慢(是因為有傳回值 傳回值總為1)。店長推薦echo輸出語句

      拼接字串(共置):PHP使用【.】來拼接字串(跟JavaScript有很大的區別,注意區分)

      全域變數和局部變數:在函數內部的變數稱為局部變數,在函數外部的變數稱為全域變數。函數內部是不能直接存取到函數外部的變數的(這跟JavaScript有很大的區別,注意區分, 但可以使用$GLOBALS數組訪問

  

<?php    $x=‘global x‘;    function myTest(){        //echo $x;//報錯        //正確寫法        echo $GLOBALS[‘x‘];        //在函數中建立全域變數        $GLOBALS[‘y‘] = $GLOBALS[‘x‘];    }     myTest();    echo $y;?>

  chrome中顯示:

      關鍵字global:用於函數內訪問全域變數  在函內調用全域變數,除了使用$GLOBAL數組,還可以在變數前加上global關鍵字

<?php    $x=5;    $y=10;    function myTest(){        global $x,$y;        $y=$x+$y;    }    myTest();    echo $y; // 輸出 15?>

  chrome中顯示:

    關鍵詞static:當函數執行完畢時,內部的變數通常會被刪除以減少記憶體的使用,但如果要指定某個局部變數不被刪除,可以在第一次聲明變數時使用static關鍵字

<?phpfunction myTest(){    static $x=0;    echo $x;    $x++;}myTest();//=>0echo ‘<br>‘;echo ‘<br>‘;myTest();//=>1echo ‘<br>‘;echo ‘<br>‘;myTest();//=>2//變數不被刪除的結果是:每次執行函數都在原來的基礎上+1?>

 

  chrome中顯示:

 

 

 

  超級全域變數:在指令碼任何地方都可以訪問的變數

        1.$GLOBALS

        2.$_POST/$_GET(被廣泛運用於表單資料收集和ajax請求)

        3.$_COOKIE  用於收集前端發過來的cookie資料

        4.$_REQUEST  該變數包含$_COOKIE $_POST/$_GET的內容

        5.$_SESSION   伺服器版的cookie

 

  常量

     1.命名規則與變數一致,但常量名不需要加 $ 修飾符。

     2.常量值被定義後,在指令碼的其他任何地方都不能被改變。

       3.預設是全域變數,可以在整個啟動並執行指令碼的任何地方使用。

     4.常量名建議全部大寫

      格式:define(name,value[,case_insensitive])    name:必選參數,常量名稱,即標誌符。  value:必選參數,常量的值。case_insensitive :選擇性參數,如果設定為 TRUE,該常量則大小寫不敏感。預設是大小寫敏感的。

      執行個體:   define("ENNAME", "laoxie");

 

  數組:PHP的數組形式和JavaScript較大的區別;這裡拿出來說一下。首先:PHP數組是有類型的:數值數組--帶有數字索引值的數組  關聯陣列 --帶有指定的鍵的數組,每個鍵關聯一個值    多維陣列--包含一個數組或多個數組的數組。 在PHP中,使用array()函數建立數組  echo是不能直接列印數組的(需要用到json_enconde()轉換為字串)

<?php    //數值數組    $cars=array("Volvo","BMW","Toyota");    //關聯陣列    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");        ?>

    關於數組的方法有:

      擷取數組的長度:count()

      遍曆數組:for / foreach()

<?php    //遍曆數值數組:for迴圈    $cars=array("Volvo","BMW","Toyota");    $arrlength=count($cars);    for($x=0;$x<$arrlength;$x++){        echo $cars[$x] . "<br>";    }    //遍曆關聯陣列:foreach    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");    foreach($age as $x=>$x_value){        echo "Key=" . $x . ", Value=" . $x_value;        echo "<br>";    }?>

  在chrome中顯示:

 

   物件導向:PHP的物件導向跟JavaScript也有很大的不同。

      類:定義一個類使用class關鍵字 加上類名 類名後緊跟一對大括弧({}),在括弧內可以定義變數和方法。類的變數使用var聲明  裡面的函數定義跟JavaScript的函數定義類似。

<?php    class Person{        // 成員變數        var $name;        var $age = 18;        //成員函數        function setName($name){            $this->name = $name;        }        function getAge(){            return $this->age;        }    }?>

      執行個體化對象:$p = new Person;

      調用成員屬性/方法:使用“->”(類似JavaScript的【.】)調用   $p->setName(‘Tom‘);  $p->name;

       建構函式: __construct建構函式是一種特殊的方法。主要是用來建立對象時,初始化對象    聲明方式:

              function __constrcut($par1,$par2..){#code}

      構析函數:__destruct構析函數是與建構函式相反,當對象結束生命週期時(例如對象所在的函數已調用完畢),系統會自動執行構析函數 註:一個類只用存在一個構析函數。 聲明方式: function __destruct(){#code}

      存取控制:public(公有,預設)--公有的類成員可以在任何地方被訪問  聲明方式: var $par

           private(私人)--私人成員只能在類內部才能被訪問   聲明方式:private $par

           protected(受保護的) --受保護的類成員只能在類內部,子類,父類中訪問  聲明方式:protected $par

           static(靜態) --聲明類屬性或方法為靜態,之內由類訪問,不能被執行個體化對象訪問  聲明方式:static $name

                  訪問方式:類名::方法/屬性(很特殊,不是用【->】訪問的)

          PS:  - 類屬性必須定義為公有,受保護,私人之一。如果用 var 定義,則被視為公有。
            - 類中的方法可以被定義為公有,私人或受保護。如果沒有設定這些關鍵字,則該方法預設為公有。

    

      繼承:使用關鍵字 extends 來繼承一個類,繼承後子類就擁有父類的屬性和方法(私人除外)

      格式如下:

class Man extends Person {    // 新增成員函數    function setAge($age){        $this->age = $age;    }    //重寫方法    function setName($name){        $this->name = $name;        return $name;    }}

 

 

 

    產生動態網頁面:這涉及到幾個方面---表單提交:$_POST、$_GET、$_REQUEST;   會話:session    關於session的幾個方法:session_start()---啟動新會話   session_destory()---銷毀一個會話的全部資料   time()---擷取目前時間

 

    介面:利用PHP編寫資料介面  

        讀取本機資料時,直接返回資料    json_encode()--講數組轉化為字串   json_decode(json, assoc)--將字串轉化為數組/對象  assoc為true時,將返回array。

        檔案的讀取和寫入

          fopen(filename, mode): 開啟檔案

          fread(): 讀取內容

          fwrite():寫入內容

          fclose():關閉檔案

          filesize():讀取檔案字元長度

  

 //以讀模數式開啟檔案    $myfile = fopen(‘./data/weibo.json‘, ‘r‘);    //讀取檔案內容    $content = fread($myfile, filesize(‘./data/weibo.json‘));    //關閉檔案,減少資源佔用    fclose($myfile);

    

       擷取遠程json資料:

          API資料

            curl:client url

$url = ‘http://wthrcdn.etouch.cn/weather_mini?city=廣州‘;//初始化 cURL會話$ch = curl_init(); // 設定需要的選項curl_setopt($ch, CURLOPT_URL, $url); //執行會話$contents = curl_exec($ch); //關閉會話curl_close($ch); //輸出內容echo $contents; 

          

          爬蟲:file_get_contents()   preg_match_all();

 

  PHP的基本文法 就寫這麼多了(沒提到的跟JavaScript類似),細節以後會繼續補充

                                          2017-3-23  15:30

      

 

 

 

    

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.