自學php筆記

一、PHP入門

1、php是一種動態網站開發的腳本語言,動態語言特點是交互性,會有數據的傳遞,而php作爲中間人需要進行數據的傳遞,傳遞的前提就是php能自己存儲數據(臨時存儲);
2、變量:是用來儲存數據的;存在名字,通過名字來訪問:數據;是可以改變的:數據;
3、定義:在系統中增加對應的變量名字(內存);
4、賦值:可以將數據賦值給變量名
解決中文亂碼:hearder(‘Content-type:text/html;charset=utf-8’);
5、如何定義一個變量: 
         1、以$開頭 $變量名;
          2、var_dump(變量)  頁面打印
6、定義一個常量 : const  常量名(大寫,不需要$);
7、數據類型:
int(整數),
float(小數),
string; 寫法:可以用引號,定界符(<<<AAA(界限名)    內容     AAA(界限名,要頂格寫));如果用雙引號定義,其中輸出變量{變量名}
 如果用單引號定義,其中要輸出變量,必須拼接;
boolean
null,
object,
array,
resource(資源);
8、會被轉換成false的情況:
      1、'';
      2、0;
      3、[];
      4、null
      5、空對象
9、字符串的拼接:'.'
10、數據轉換:
       1、settype(變量名,'轉換數據類型名')  改變變量本身
        2、$i=(轉換數據類型名)  變量名  生產一個新的變量
11、運算符:+-*/% += -= *=  /= && ||  !
        三元運算符:條件?對的值:錯的值
         i++  先做別人的事,自己在加1

二、PHP函數和內置函數;

  1、自定義函數:函數的三要素:函數名,參數,返回值;
           1、引用地址參數的傳遞&參數;在傳參的時候把實際參數本身傳入到函數中。
            2、帶默認參數傳遞:可以在定義的時候給形參賦默認值,統一放在右邊
            3、可變數量參數的傳遞:   形參:…$數組名;(支持php5.6以後的版本) 
            5.6以前版本:形參不寫,在功能體中使用$數組名=func_get_args();
            4、全局變量:在函數內外都可以使用
                   1)、 在函數中使用全局變量:先GLOBAL+全局變量名聲明  後使用;
                    2)、$GLOBALS[全局變量名]訪問相對應的全局變量。
            5、局部變量:只能在函數作用域內纔可以使用;
    2、變量內置函數:
          1、轉換數據類型:
              settype(變量,數據類型)     返回值:true或false;
           2、變量是否設置:
                isset(變量名)                 返回值:true 或 false;
     3、輸出函數:echo與print的區別:
           1、不同:echo沒有返回值,print有返回值
           2、echo與print不可以打印數組和對象;
           3、var_dump和print_r
                1)、print_r只會顯示值,var_dump值和數據類型;
                2)、共同點:都可以打印數組、對象、其他數據類型;
       4、時間函數:
           1、time()   獲得當前時間的時間戳
           2、date('Y/m/d H:i:s',time())
                注:1、date_default_timezone_set('PRC')    設置中國所在時區;                   
                       2、修改服務器的配置文件:php.ini-->timeZone--->去掉;---->設置時區(PRC);
           3、getdate(時間戳)獲取時間數組;
           4、strtotime();  字符串轉換爲時間戳
           5、mktime:返回時間戳;

三、PHP數組

1、一維數組定義:
     1、下標數組:數組名=[值1,值2,值3,值4…..];   下標是數字
      2、關聯數組:下標不爲數字, 數組名=[鍵1=>值1,鍵2=>值2…..];
2、下標一些特殊情況;
      1、十進制的整型字符串爲下標---->轉爲整型;
      2、true或false----->轉爲整型(1,0);
      3、浮點型數---->轉爲整型;
      4、null---->轉爲''(空字符串);
      5、鍵名相同的情況下,會被覆蓋;
      6、鍵名不寫的情況下,默認最大的整型+1;
3、數組的遍歷:
      1、foreach($arr as $key=>$value){}
4、數組的添加:array_push($arr,添加的值);
5、數組鍵值互換:array_flip($arr);
6、產生數組:range(開始位置,結束位置,間隔);
7、計算數組長度:count()=sizeof();
8、查找:array_search(要查找的值,數組);
9、對數字進行增刪改查:
      array_splice(數組,起始位置,刪除幾個,替換幾個);
四、PHP面向對象
   1、面向對象OOP的三大特性:
            封裝(不關注具體的實現,只關注整體,隱祕性)、
            繼承
            多態;
   2、類是一個模板,抽象的;對象是一個具體的實物,
   3、PHP類的定義:class  類名{屬性、構造函數、方法、析構函數};
   4、屬性的聲明:   訪問修飾符:public  變量名;
   5、訪問修飾符:
              public(公共的,內外都可以訪問)、
              private(私有屬性,只可以在類的內部訪問);
              protected(受保護的);
   6、構造函數:public function __construct(){}   在實例化(new)的時候自動調用、屬性的賦值。
   7、析構函數:public function __destruct(){}    在關閉資源或者銷燬變量時使用。
   8、類的內部訪問屬性:$this->屬性名;類的外部訪問屬性:對象名->屬性
   9、繼承的聲明:extends聲明;
   10、繼承的格式:引用父類資源   class subClass extend superClass{}; 
                       其中 subClass爲子類名稱,superClass爲父類名稱;
    11、父類的私有屬性無法被繼承;
    12、父類保護屬性只能在父類內部和子類內部使用;
    13、多態:重寫父類的方法,子類調用方法時,重寫父類方法;
    14、final  class 類名: 無法被繼承;
    15、abstract :抽象類:
              語法:abstract class 類名{}
    16、有抽象方法的類,一定是抽象類,
    17、抽象方法沒有具體的實現,抽象方法一定要被子類實現。
    18、設計模式(單例): 某個類只能被實例化一次
           1、將構造函數私有化;
           2、定義一個靜態方法
           3、定義一個靜態屬性
           4、判斷靜態屬性是否已經賦值;
    19、靜態變量:聲明:static       只能被初始化一次; 

五、PHP文件處理

 1、文件操作
     1、打開文件:fopen(參數1,參數2)
           參數:參數1:文件路徑
                     參數2:打開方式:a+、r+、w+
                      會自動創建文件的打開方式 :w+(會覆蓋原文件) ,a+;
                      a+與r+的區別:a+是從尾部添加,r+從頭部覆蓋;
  2、文件的寫入:fwrite(資源路徑,“寫入內容”);
  3、文件的讀取:fgets(資源類型)   每次讀取一行;
  4、判斷文件是否到達末尾:feof    到達true;未到達false;
  5、寫入數組到文件
      1、先定義一個數組;
      2、將數組轉換成JSON字符串 :json_encode() ;
  6、文件上傳
      1、打開對應版本PHP的配置文件PHP.ini->upload,確保file_uploads=ON打開;
      2、編寫一個前端頁面
            1、<from action="提交路徑" method="提交方式" enctype=“multipart/form-data”;
             2、ipnput  type=“file”  name=“提交的名字”;
             3、按鈕:input type=“sumbit”;
      3、action.php
           1、接收到文件 $_FILES['提交的名字'];
           2、根據接收的結果的數組,編輯業務邏輯;
           3、move_uploaded_file  去把臨時文件 移動到工程目錄下(iconv 轉碼); 
           4、保存路徑;

六、PHP網頁基礎

   1、PHP工作原理
   2、網絡的傳輸格式:get、post
       1、get 直接在url上傳遞數據,不安全
        2、post相對安全,信息量大;
        3、後端接收數據
              1、get:$_GET['提交的名字']
              2、post:$_POST['提交的名字'];
              3、通用接收:$_REQUEST['提交的名字'];
       4、url:http://域名(IP地址):post/文件名?key1=val1&key2=val2

七、Cookie與Session

       1、cookie與session都是存儲數據的緩存
       2、cookie存儲在客戶端,session存儲在服務端;
       3、設置cookie
             setcookie(key,val,過期時間,地址)
        4、cookie存儲數組:serialize(數組名);將數組序列化爲字符串
              cookie取數組      unserialize($_COOKIE[KEY])  ;  將字符串反序列化;
        5、session工作原理:當session_star()代碼執行後,服務端生成一個臨時的文件,給客戶端發送一個PHESESSIONID,PHESESSIONID與臨時文件名相

八、AJAX

         1、ajax:是一個網絡請求,http協議,一個短連接;
          2、ajax與form表單的不同
                1、form表單需要跳轉頁面
                2、ajax不需要跳轉頁面
       3、原生ajax是利用XMLHttpRequest對象實現的,
            XMLHttpRequest.open("提交方式","url",true);
            XMLHttpRequest.send()

         4、jq 與ajax請求
              語法:$.ajax({
                       type:""     請求類型;
                       url:""        請求路徑;
                       dataType:""        預期服務器返回的數據類型;
                       success:function(){}    成功之後執行的回調函數
                       error:function(){}    失敗之後執行的回調函數
                  })
發佈了6 篇原創文章 · 獲贊 1 · 訪問量 1203
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章