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

PHP 開發必掌握的 8 大核心功能詳解

     編輯:PHP 綜合知識

PHP 內建了許多強大的功能,熟練掌握它們能讓開發事半功倍。本文整理了 8 個實用至極的 PHP 核心功能,涵蓋參數處理、文件操作、效能監控、系統常量、唯一 ID 生成、序列化與壓縮等關鍵領域,助你寫出更優雅、高效的代碼。

1. 靈活處理任意數量的函數參數

不同於 Java 或 C# 固定參數列表,PHP 允許函數接收不定數量的參數。

預設參數值

function foo($arg1 = '', $arg2 = '') {
    echo "arg1: $arg1\n";
    echo "arg2: $arg2\n";
}
foo('hello', 'world'); // 輸出: arg1: hello, arg2: world
foo();                 // 輸出: arg1: , arg2: 

不定參數列表 func_get_args()

function foo() {
    $args = func_get_args();
    foreach ($args as $k => $v) {
        echo "arg" . ($k+1) . ": $v\n";
    }
}
foo();                          // 無輸出
foo('hello');                   // 輸出 arg1: hello
foo('hello', 'world', 'again'); // 輸出 arg1: hello, arg2: world, arg3: again

2. 使用 glob() 高效查找文件

glob() 類似 scandir(),但支援模式匹配,用法直觀:

// 獲取所有 .php 文件
$files = glob('*.php');
print_r($files);

// 同時匹配多種副檔名
$files = glob('*.{php,txt}', GLOB_BRACE);

// 支援路徑
$files = glob('../images/a*.jpg');

// 獲取絕對路徑
$files = array_map('realpath', glob('../images/a*.jpg'));

3. 監控內存使用情況

利用 memory_get_usage() 獲取當前內存佔用,memory_get_peak_usage() 獲取峰值,方便效能調優:

echo "Initial: " . memory_get_usage() . " bytes\n";
// 模擬佔用內存
for ($i = 0; $i < 100000; $i++) { $array[] = md5($i); }
// 釋放一半
for ($i = 0; $i < 100000; $i++) { unset($array[$i]); }
echo "Final: " . memory_get_usage() . " bytes\n";
echo "Peak: " . memory_get_peak_usage() . " bytes\n";

4. 獲取 CPU 使用資訊

getrusage() 返回系統資源使用統計(Windows 不支援),重點關注用戶態時間 (ru_utime) 與核心態時間 (ru_stime):

$data = getrusage();
$userTime = $data['ru_utime.tv_sec'] + $data['ru_utime.tv_usec'] / 1000000;
$sysTime  = $data['ru_stime.tv_sec'] + $data['ru_stime.tv_usec'] / 1000000;
echo "User time: $userTime\nSystem time: $sysTime";

5. 善用魔術常量

PHP 提供 __LINE__、__FILE__、__DIR__、__FUNCTION__、__CLASS__、__METHOD__、__NAMESPACE__ 等常量,極大簡化調試與路徑解析:

// 安全引用配置文件
require_once(dirname(__FILE__) . '/config/database.php');

// 除錯輸出行號
function my_debug($msg, $line) { echo "Line $line: $msg\n"; }
my_debug("訊息", __LINE__);

6. 生成唯一 ID:uniqid()

比 md5() 更短、可排序、基於微秒時間戳:

echo uniqid();           // 如 4bd67c947233e
echo uniqid('foo_');     // 帶前綴 foo_4bd67d6cd8b8f
echo uniqid('', true);   // 更多熵 4bd67d6cd8b926.12135106
echo uniqid('bar_', true); // 兩者結合

7. 資料序列化與 JSON 編碼

serialize()/unserialize() 適合 PHP 內部存儲;json_encode()/json_decode() 則是跨語言交換的標準:

$myvar = ['hello', 42, [1, 'two'], 'apple'];
$str = serialize($myvar);   // PHP 專用格式
$json = json_encode($myvar); // ["hello",42,[1,"two"],"apple"]

8. 字符串壓縮:gzcompress() / gzuncompress()

適合壓縮長文本、緩存大數據,壓縮率可達 50% 以上:

$string = "很長的文本內容...";
$compressed = gzcompress($string);
echo "原始: " . strlen($string) . " 字節\n";
echo "壓縮: " . strlen($compressed) . " 字節\n";
$original = gzuncompress($compressed); // 還原

掌握這 8 大功能,能讓你的 PHP 代碼更簡潔、健壯且高效。

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