PHP核心編程知識點

來源:互聯網
上載者:User

標籤:

一、PHP基本文法
  1. PHP標記:一共有四種,只推薦使用第一種
  2. 語句結束符:分號
  3. 注釋:行注釋(//  #)和塊注釋(/*   */),注釋的規範
二、常見的輸出語句
  1. print
  2. echo
  3. var_dump
  4. print_r
  5. printf
三、變數
  1. 變數的組成:變數名和變數值組成,變數名引用變數值
  2. 記憶體的組成:堆區、棧區、使用者代碼區,全域資料區(變數區、常量區、靜態變數區),變數名在棧區,變數值是在變數區中
  3. 變數的基本文法:$
  4. 變數的命名規則
  5. 可變變數:變數的名又可以用一個變數來代替
  6. 變數的基本操作
    • 增:聲明變數
    • 刪:刪除變數,unset的行為:刪除變數名空間,消除參考關聯性
    • 該:修改變數的值
    • 查:擷取變數的值,輸出變數
  7. 變數間的傳值
    • 值傳遞:傳遞後兩個變數獨佔佔用各自的變數名空間和變數值空間,互補幹擾
    • 引用傳遞:傳遞後兩個變數的變數名共同引用相同的變數值空間
  8. 預定義變數
    • $_SERVER
    • $_GET
    • $_POST
    • $_REQUEST
  9. 其他
四、常量
  1. 常量的定義:define(‘名’,值,是否不區分大小寫)   const 常量名=常量值
  2. 常量的文法意義:用來規範資料保證資料在啟動並執行過程中不被改變
  3. 判斷常量是否存在:defined(‘常量名’),返回一個布爾值
  4. 常量的命名規則,特殊的常量名使用constant(‘常量名’)方式進行訪問
  5. 擷取所有的常量:get_defined_constants()
  6. 預定義常量
    • 含義
  7. 魔術常量:該常量的值由其所在的位置決定
五、資料類型1.資料類型簡介
    • 程式 = 資料結構 + 演算法
    • PHP的資料類型:三大類,8小類
2.進位及進位轉換
  1. 其他進位轉換為十進位:按權展開!
  2. 十進位轉二進位
    1. 整數
      • 除二取餘法
      • 填充法
    2. 小數:乘二取整
  3. 十進位轉其他進位
    • 整數:除 n 取餘
    • 小數:乘 n 取整
  4. 八進位、二進位、十六進位直接的互轉
    1. 二、八之間的互轉
      • 八轉二:一拆三(421碼)
      • 二轉八:三並一
    2. 二、十六之間的互轉
      • 十六轉二:一拆四
      • 二轉十六:四並一
    3. 八、十六之間的互轉
      • 八轉十六:先一拆三,再四並一
      • 十六轉八:先一拆四,再三並一
3.整型資料
  1. 表示形式
    • 十進位
    • 八進位,以0開頭
    • 十六進位,以0x開頭
  2. 在記憶體中的形式:二進位的補碼的形式存放的
  3. 原碼、反碼和補碼的概念
4.浮點型資料
  1. 表示形式:
    1. 小數形式
    2. 指數形式
      • e不區分大小寫
      • e後必須要有數字
      • e後必須是整數
  2. 在記憶體中的形式:只能以指數的形式存放
  3. 浮點數的比較:不要使用浮點數進行比較,因為會浮點數會丟失精度
5.布爾型資料
  1. 只有true和false兩個值,不區分大小寫
  2. 在進行邏輯判斷的時候,以下的值會當成false進行處理
    • 整數0
    • 浮點數0:0.0
    • 字串0:’0’
    • Null 字元串:’’
    • 空類型:NULL
    • 空數組:array()
    • 對象和資源型永遠為真!
6.字串資料
  • 單引號
  • 雙引號
  • 定界符:Heredoc
  • 定界符:Nowdoc
7.特殊資料類型
  • NULL類型
  • resource型
8.類型轉換
  1. 類型自動轉換

    • 字串型自動轉換為數值型
    • 其他類型自動轉換為布爾型
  2. 類型強制轉換
    • 利用類型強制轉換運算子()來完成的!
    • 使用(array)進位強制轉換的時候的注意事項
9.類型相關函數
  • 類型相關的函數
    • gettype
    • settype
    • isset
    • empty
    • is_type系列
六、運算子1.幾個概念

        a.運算子的概念

        b.運算子的分類

        c.運算子的優先順序和結合性

        d.運算式和語句

2.算術運算子
    • 求餘運算子:在運算之前先把兩個運算元都自動轉換為整型,符號是由被除數決定的
    • 自增自減:++和——在前面和在後面的區別
3.賦值運算子
    • 複合的賦值運算子
    • 賦值運算子的結合性:右結合
    • 賦值運算式的值就是被賦值的那個變數的值$a = 100
4.字串串連符
    • 主要和逗號的區別
    • 在運算之前是將兩邊的運算元都自動轉換為字串類,然後進行橫向的“拼接”
5.關係運算子
    • =和==的區別
    • ==和===的區別
6.邏輯運算子
    • 邏輯與 && 或者and
    • 邏輯或 ||  或者 or
    • 邏輯非 !
    • 邏輯異或 xor
    • 注意短路運算
7.條件運算子
    • 形式:運算式1 ? 運算式2 : 運算式3
    • 也有短路運算的行為,相當於簡單的if……else語句
8.位元運算符
    • 按位與 &
    • 按位或 |
    • 按位非 ~
    • 按位異或 ^
    • 按位左移:<<,右邊補0
    • 按位右移:>>,左邊正數補0,負數補1
9.其他運算子
    • new、clone、instanceof、@
七、流程式控制制1.流程式控制制簡介
    • 三大結構:順序、選擇、迴圈
    • 演算法的表示:流程圖、虛擬碼、自然語言
2.if語句
    • 條件執行:只有if沒有else
    • if……else……
    • if……elseif……
3.switch語句
    • 開關語句:一旦case後面的運算式的值和switch後面運算式的值一致,開關就開啟了,一直遇到右花括弧或者break語句為止!
    • 與if語句的區別:if語句是條件分支,switch語句是狀態分支
4.while語句
    • 當型迴圈:裡面的迴圈體有可能一次都不執行
    • 百錢買百雞:面向過程的編程思想——自頂向下,逐步細化!
5.do-while語句
    • 直到型迴圈:裡面的迴圈體至少要執行一次
    • 輾轉相除法求最大公約數:體會while迴圈和do-while迴圈的區別
6.for語句
    • 使用的最多,因為最簡潔緊湊
    • 執行流程
    • 運算式1、運算式2、運算式3都可以省略
7.迴圈的中斷語句
    • continue:結束當前的本次迴圈,繼續下一次迴圈
    • break:結束當前整個迴圈
    • 中斷的層次:預設值為1
8.流程式控制制語句的替代文法
    • 把所有的左花括弧都用冒號來代替
    • 整個流程式控制制語句結束後,再用endIf、endWhile、endFor、endForeach等來結束
    • do-while沒有這種替代文法
9.檔案載入
  1. 體現了網站的分層設計,以提高代碼的重用性
  2. 有四種不同的載入的方式,只是文法上的一些差異
  3. 載入的原理(過程)
    • 退出PHP模式,進入HTML模式
    • 將目標檔案內的原始碼載入到當前位置(相當於將其中的源碼複製到當前載入的位置)
    • 將被載入的原始碼先進行先行編譯然後執行(檔案的載入是發生在執行階段)
    • 再次進入PHP模式
  4. 載入時的路徑問題
    • 相對路徑:./    ../   
    • 預設路徑:可以在php.ini中進行配置(include_path)
    • 絕對路徑:一般都要先定義目錄常量
  5. 四種載入方式的區別
    • include和require
    • include和include_once
10.指令碼的執行控制
    • die或exit
    • sleep
八、函數1.函數的定義2.函數的組成
  1. 函數名
  2. 函數參數列表
  3. 函數體
3.函數調用4.可變函數

       函數名可以用一個變數來代替

5.匿名函數6.函數的參數
  1. 形參和實參
  2. 參數的值傳遞和引用傳遞
  3. 形參的預設值
  4. 參數的數量問題
    1. 實參多於形參
    2. 實參少於形參:只有一種正確的情況,那就是形參有預設值的時候
    3. 不定參數的函數
      • 基本思想:乾脆一個都不定義
      • func_get_args()用來接收實參的值,是一個索引數組
      • func_get_arg()用來擷取某一個實參的值,索引是從0開始
      • func_num_args(),用於擷取實參的數量
  5. 函數體
    • return語句
    • 函數內允許出現多個return語句,但是只能執行其中的一條
    • 如果一個函數內確實有很多的值需要返回,一般的做法就是把這些值放到一個數組(對象)裡面,然後返回這個數組就行了
  6. 函數的範圍
    • 全域範圍(全域變數)
    • 局部範圍(局部變數)
    • 超全域範圍(預定義變數)
    • $GLOBALS
    • 關鍵字global
7.變數的生命週期
    • 概念:與變數的範圍的區別
    • 靜態局部變數:使用關鍵字static
8.函數的遞迴調用
    • 概念:就是函數在執行的時候自己調用自己,不是一種新的文法,而是一種演算法的描述
    • 遞迴調用的關鍵點:遞迴出口,遞迴點,寫程式的時候先寫遞迴出口,然後再寫遞迴點
    • 特點:代碼書寫比較簡單,本質上就是以空間換取時間
10.字串函數
    • strlen
    • substr
    • strtolower|strtoupper
    • ucfirst:首字母大寫
    • strrev
    • strpos
    • strrpos
    • strchr|strstr
    • strrchr
    • trim
    • str_replace(要替換的字元,替換成什麼字元,從哪個字串替換);
11.時間函數
    • time:返回一個時間戳記
    • date:將一個時間戳記格式化為指定的格式(常見的時間預留位置:Y-m-d H:i:s)
    • strtotime
    • microtime,加上參數true就是返回一個浮點型的時間戳記
12.數學函數
    • abs
    • sqrt
    • pow
    • ceil|floor
    • round
    • rand|mt_rand
九、數組
  1. 數組初步

    1. 數組建立:顯示建立,隱式建立、利用強制類型轉換符建立
    2. 數組訪問:中括弧文法
    3. 數組分類:
      1. 索引值之間的關係:索引數組和關聯陣列
      2. 數組的維度:一維和多維陣列
  2. foreach遍曆
    1. 基本文法
    2. 幾個細節
    3. 數組的指標:reset,next、current、key

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.