首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 學習筆記大全:兩千行核心知識點速查手冊

     編輯:PHP 相關知識

PHP 核心知識體系結構化速查

本文將分散的語法、函數、類、配置、安全、效能等知識點整理為**結構化速查手冊**,適合進階開發者隨時查閱、面試複習、代碼審查參考。

語言基礎

  • 命名規範:類/介面 PascalCase、方法/屬性 camelCase、常量 UPPER_SNAKE、私有前綴 `_`、介面前綴 `I`。
  • 語言結構:`echo`/`print`/`isset`/`empty`/`unset`/`list`/`array`/`eval`/`exit`/`die` 非函數,不可作為可變函數調用。
  • 預定義常量:`PHP_VERSION`、`PHP_OS`、`PHP_SAPI`、`PHP_INT_MAX`、`PHP_EOL`、`DIRECTORY_SEPARATOR`、`PATH_SEPARATOR`、`M_PI`、`M_E`、`__FILE__`、`__LINE__`、`__DIR__`、`__FUNCTION__`、`__CLASS__`、`__METHOD__`、`__NAMESPACE__`、`__TRAIT__`。
  • 大小寫敏感:類/方法/屬性/函數**不敏感**;變量/常量/陣列鍵**敏感**。
  • 可變語法:`$$var`、`$obj->$prop`、`$obj->$method()`、`$class::$$staticProp`、`$func()`、`$arr[$key]`。

類型系統與操作

  • 標量:`int`(32位平台 4 字節)、`float`(不可直接比較)、`string`(單/雙引號/heredoc/nowdoc)、`bool`。
  • 複合:`array`(有序映射)、`object`、`callable`、`iterable`。
  • 特殊:`resource`、`null`、`never`(PHP 8.1)、`mixed`(PHP 8.0)。
  • 判斷函數:`is_int`/`is_float`/`is_string`/`is_array`/`is_object`/`is_bool`/`is_null`/`is_resource`/`is_scalar`/`is_callable`/`is_iterable`/`is_numeric`。
  • 轉換:`(int)`/`(float)`/`(string)`/`(bool)`/`(array)`/`(object)`/`intval()`/`floatval()`/`strval()`/`boolval()`/`settype()`。

流程控制與函數

  • 替代語法:`if: ... elseif: ... else: ... endif;`、`while: ... endwhile;`、`for: ... endfor;`、`foreach: ... endforeach;`、`switch: ... endswitch;`(嵌入 HTML 模板常用)。
  • 函數參數:預設值(僅標量/陣列/NULL)、引用傳遞 `&$arg`、可變參數 `...$args`、`func_get_args()`/`func_get_arg()`/`func_num_args()`。
  • 返回引用:`function &foo() { return $ref; }` `$x =& foo();`。
  • 作用域:全局/局部/靜態 `static`/`global`/`$GLOBALS`/超全局(`$_GET`/`$_POST`/`$_SESSION`...)。
  • 匿名函數/閉包:`fn() => ...`、`function() use ($var) {}`、`Closure::bind()`/`call()`/`fromCallable()`。
  • 生成器:`yield`、`yield from`、`Generator` 物件、`IteratorAggregate`。

陣列操作精華

  • 指針:`current`/`key`/`next`/`prev`/`end`/`reset`/`each`(`foreach` 遍歷拷貝,寫入觸發 Copy-on-Write)。
  • 遍歷:`foreach ($arr as $k => &$v)` 引用修改原陣列。
  • 核心函數:
    • 統計:`count`/`array_count_values`/`array_sum`/`array_product`
    • 鍵值:`array_keys`/`array_values`/`array_flip`/`array_change_key_case`
    • 合併:`array_merge`(字串鍵覆蓋、數字鍵重索引)、`array_merge_recursive`、`+` 運算符(鍵不覆蓋)
    • 搜索:`in_array`/`array_key_exists`/`array_search`/`array_column`
    • 分割/切片:`array_chunk`/`array_slice`/`array_splice`
    • 排序:`sort`/`rsort`/`asort`/`arsort`/`ksort`/`krsort`/`usort`/`uksort`/`uasort`/`natsort`/`natcasesort`/`shuffle`
    • 堆疊/隊列:`array_push`/`array_pop`/`array_unshift`/`array_shift`
    • 差集/交集:`array_diff*`/`array_intersect*` 系列
    • 映射/過濾:`array_map`/`array_filter`/`array_walk`/`array_reduce`

字符串與正則

  • 編碼:全鏈路 UTF-8(檔案、資料庫、連線、HTTP Header、HTML Meta)。
  • 核心函數:`strlen`/`mb_strlen`、`substr`/`mb_substr`/`mb_strcut`、`strpos`/`mb_strpos`/`stripos`、`str_replace`/`str_ireplace`、`preg_match`/`preg_match_all`/`preg_replace`/`preg_split`、`json_encode`/`json_decode`(`JSON_UNESCAPED_UNICODE`/`JSON_UNESCAPED_SLASHES`/`JSON_THROW_ON_ERROR`)、`hash`/`hash_hmac`/`password_hash`/`password_verify`。
  • PCRE 修飾符:`i`(忽略大小寫)、`m`(多行)、`s`(單行/點匹配換行)、`u`(UTF-8)、`x`(擴展語法)。

物件導向進階

  • 魔術方法:`__construct`/`__destruct`/`__call`/`__callStatic`/`__get`/`__set`/`__isset`/`__unset`/`__sleep`/`__wakeup`/`__serialize`/`__unserialize`/`__toString`/`__invoke`/`__clone`/`__debugInfo`/`__set_state`。
  • 關鍵字:`public`/`protected`/`private`/`static`/`final`/`abstract`/`readonly`(PHP 8.1)/`interface`/`trait`/`implements`/`extends`/`instanceof`/`::class`/`self`/`parent`/`static`(靜態延遲綁定)。
  • 設計模式:單例、工廠、建造者、策略、觀察者、裝飾器、適配器、Repository、Entity/ValueObject(DDD)。
  • 反射:`ReflectionClass`/`ReflectionMethod`/`ReflectionProperty`/`ReflectionFunction`/`ReflectionParameter`/`ReflectionAttribute`(PHP 8.0)。

資料庫與安全

  • PDO 最佳實踐:`ATTR_ERRMODE => ERRMODE_EXCEPTION`、`ATTR_EMULATE_PREPARES => false`、`ATTR_DEFAULT_FETCH_MODE => FETCH_ASSOC`、預處理語句、事務 `beginTransaction`/`commit`/`rollBack`。
  • SQL 注入防禦:唯一使用參數綁定,嚴禁拼接。
  • XSS 防禦:輸出編碼 `htmlspecialchars($str, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8')`、CSP 標頭。
  • CSRF 防禦:同源檢查、Token、SameSite Cookie。
  • 密碼儲存:`password_hash($pwd, PASSWORD_DEFAULT)` + `password_verify()`。

效能與工程化

  • OpCache:`opcache.enable=1`、`opcache.jit=1255`(PHP 8.0)、`opcache.preload`(PHP 7.4)。
  • 靜態分析:PHPStan Level 5+、Psalm、Rector 自動重構。
  • 測試:Pest/PHPUnit、測試金字塔(單元多、集成少、E2E 極少)、Mutation Testing (Infection)。
  • CI/CD:GitHub Actions / GitLab CI、代碼風格、靜態分析、測試、構建鏡像、部署。`composer install --no-dev --optimize-autoloader --classmap-authoritative`。
  • 觀測:OpenTelemetry、Prometheus、Grafana、Jaeger、Sentry、ELK。

常用命令速查

php -v              # 版本
php -m              # 模組
php -i              # phpinfo
php -l file.php     # 語法檢查
php -r 'code'       # 運行代碼
php -S 0.0.0.0:8000 # 內建服務器
composer require vendor/pkg
composer update --no-dev -o
composer dump-autoload -o
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved