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

PHP 核心語法要點精析:GET/POST、常量、變量作用域、運算符、輸出與判斷

     編輯:PHP 相關知識

PHP 核心語法要點精析

本文彙整 PHP 開發中最常用、最易混淆的核心語法知識點,包含請求方式差異、常量定義、變量作用域、運算符優先級、輸出語句差異、空值判斷與 switch 特性。

一、GET vs POST 請求方式

特性GETPOST
資料傳遞URL 參數(查詢字串)HTTP Body
長度限制約 2KB(瀏覽器/伺服器限制)理論無限(受 post_max_size)
安全性低(歷史記錄、日誌可見)較高(不在 URL)
快取/書籤可快取、可書籤不可
適用場景查詢、分頁、搜尋、無副作用操作表單提交、修改資料、上傳檔案

二、常量定義與使用

define('PI', 3.14159);       // 全域常量,不區分大小寫可選第三參數 true
const PI2 = 3.14159;         // 類常量或命名空間常量,編譯期定義
echo PI, PI2;

// 特殊名稱常量需用 constant() 讀取
define('^_^', '笑臉');
echo constant('^_^'); // 不能直接 echo ^_^

三、變量作用域三類

  1. 全域/腳本作用域:函數外定義,函數內不可直接用。
  2. 區域/函數作用域:函數內定義,函數外不可見。
  3. 超全域作用域:`$GLOBALS`、`$_GET`、`$_POST`、`$_SESSION`、`$_SERVER` 等,任何位置可用。
$v1 = 'global';
function func1() {
    global $v1; // 引入全域變量
    echo $v1;
}
function func2() {
    global $v2;
    $v2 = 'from func2'; // 全域可見
}
func2();
echo $v2; // 輸出 from func2

四、特殊運算符

  • % 取模:結果符號與**被除數**一致(`-7 % 3 = -1`)。
  • & 參考賦值:`$b = &$a` 使兩變量指向同一記憶體,`unset($a)` 不影響 `$b`。
  • and / or:邏輯與/或,**優先級極低,低於 `=`**,常用於流程控制:
    $result = doSomething() or die('失敗'); // 等同於 ($result = doSomething()) or die(...)
    $result = doSomething() || die('失敗'); // 等同於 $result = (doSomething() || die(...))

五、echo vs print

特性echoprint
多參數支援 `echo 'a','b','c';`單一參數
返回值無永遠返回 1
效能略快稍慢
用法語言結構,括號可省語言結構,可用於複雜表達式
echo 'a', 'b', 'c'; // 正確
echo ('a'), ('b'), ('c'); // 加括號需分開
$ret = print 'Hello'; // $ret = 1

六、isset() vs empty()

  • `isset($var)`:變量**存在且非 null** 返回 true。
  • `empty($var)`:變量**不存在、為 null、0、''、false、[]** 返回 true。
  • 關係:`empty()` 相當於 `!isset($var) || !$var`,需先通過 `isset()` 才進一步判斷「空」。

七、switch 進階特性

  • 支援類型:整數、浮點數、字串、陣列、布爾值、物件(實現 `__toString`)。
  • 可無 `default`。
  • 比較使用鬆散比較(`==`),陣列比較需完全相同鍵值順序。
  • 布爾值:`true` 匹配非零/非空,`false` 匹配 0/空字串/空陣列。
$val = [1,2,3];
switch ($val) {
    case [1,2,3]: echo '匹配陣列'; break;
    case true: echo '為真'; break;
}

總結速查表

  • 查詢用 GET,修改用 POST
  • 常量用 `define()` 或 `const`
  • 跨作用域用 `global` 或 `$GLOBALS`
  • 流程控制用 `or die()`、`and do()`
  • 輸出多值用 `echo`,需返回值用 `print`
  • 檢查存在用 `isset()`,檢查非空用 `!empty()`
  • `switch` 可匹配陣列、物件,注意鬆散比較

熟練掌握這些核心語法細節,能避免 80% 的 PHP 邏輯錯誤與安全隱患。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved