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

PHP 從零開始學習筆記(一):變量、常量、超全局、運算符與正則基礎

     編輯:PHP 相關知識

變量作用域與超全局

局部 vs 全局

<?php
$x = 5; // 全局變量

function test() {
    $y = 10; // 局部變量
    global $x; // 引用全局 $x
    $x += $y;
}
test();
echo $x; // 15

// 或者用 $GLOBALS 超全局數組
function test2() {
    $GLOBALS['x'] += 10;
}

八大超全局變量(自動全局可用)

變量用途常用鍵示例
$GLOBALS所有全局變量引用$GLOBALS['x']
$_SERVER服務器與執行環境信息REQUEST_METHOD, HTTP_HOST, REMOTE_ADDR, SCRIPT_FILENAME
$_GETURL 查詢字符串參數?id=1 → $_GET['id']
$_POSTPOST 請求體表單數據application/x-www-form-urlencoded
$_REQUEST$_GET + $_POST + $_COOKIE 合集不區分來源(不推薦常用)
$_FILES文件上傳信息name, type, tmp_name, error, size
$_COOKIE客戶端 Cookie$_COOKIE['session_id']
$_SESSION服務端會話數據$_SESSION['user_id']
$_ENV環境變量$_ENV['APP_ENV']

常量定義與魔術常量

// 定義常量(區分大小寫,慣例全大寫)
define('APP_NAME', 'MyApp');
define('DEBUG', true, true); // 第三參數 true = 大小寫不敏感

// 類常量
class Config {
    const VERSION = '1.0.0';
}
echo Config::VERSION;

// 魔術常量(雙下劃線包裹)
__FILE__        // 當前文件完整路徑
__DIR__         // 當前文件目錄(PHP 5.3+)
__LINE__        // 當前行號
__FUNCTION__    // 當前函數名
__CLASS__       // 當前類名
__METHOD__      // 當前方法名(類::方法)
__TRAIT__       // 當前 Trait 名
__NAMESPACE__   // 當前命名空間

echo vs print vs var_dump

  • echo:語言構造,可多參數 echo 'a', 'b',無返回值,速度最快
  • print:語言構造,單參數,返回 1,可用於表達式 $x = print 'hi'
  • var_dump():函數,輸出類型+長度+值,調試必備
  • print_r():函數,友好格式輸出數組/對象,print_r($arr, true) 返回字符串

比較運算符陷阱

鐵律:默認使用 ===/!==,除非明確需要類型轉換比較。

正則表達式入門核心

元字符速記

.       任意字符(除換行)
\d      數字 [0-9]
\D      非數字
\w      單詞字符 [a-zA-Z0-9_]
\W      非單詞字符
\s      空白字符
\S      非空白字符
^       字符串開頭
$       字符串結尾
\b      單詞邊界
|       或
()      分組捕獲
(?:)    非捕獲分組
?=      正向前瞻
?!      負向前瞻

量詞

preg_match('/pattern/', $str, $matches);      // 單次匹配
preg_match_all('/pattern/', $str, $matches);  // 全局匹配
preg_replace('/pattern/', $replacement, $str); // 替換
preg_split('/pattern/', $str);                // 分割
preg_grep('/pattern/', $arr);                 // 數組過濾

經典驗證模式

運算符名稱示例結果注意
==等值'123' == 123true類型轉換後比較
===全等'123' === 123false類型+值均相同
!= / <>不等值1 != '1'false同 ==
!==不全等1 !== '1'true同 ===
<=> 太空船1 <=> 2-1PHP 7+,返回 -1/0/1