PHP标准库:内置函数与类完全指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

PHP标准库:完全指南



PHP是Web开发中最流行的语言之一,其强大之处很大程度上归功于丰富的标准库(Standard PHP Library, SPL)。与许多语言的标准库仅包含基础工具不同,PHP的标准库包含了数百个现成的函数和类,几乎覆盖了后端开发者的所有需求。本文将全面介绍PHP标准库的关键组件,并提供代码示例和实践建议。



1. 数组操作(Array Functions)

数组是PHP的基础。标准库提供了数十个用于处理数组的函数:

  • array_map() — 对数组每个元素应用回调函数
  • array_filter() — 根据条件过滤数组元素
  • array_reduce() — 将数组缩减为单个值
  • array_merge() — 合并多个数组
  • array_diff() 和 array_intersect() — 数组比较
<?php$numbers = [1, 2, 3, 4, 5];$squared = array_map(fn($n) => $n * $n, $numbers);$even = array_filter($numbers, fn($n) => $n % 2 === 0);$sum = array_reduce($numbers, fn($carry, $n) => $carry + $n, 0);print_r($squared); // [1, 4, 9, 16, 25]print_r($even);    // [2, 4]echo $sum;         // 15?>


2. 字符串函数(String Functions)

PHP提供了强大的字符串处理工具集:

  • strlen(), strpos(), substr() — 基本操作
  • str_replace(), preg_replace() — 子串替换
  • explode() 和 implode() — 分割/连接
  • trim(), htmlspecialchars() — 数据清理
<?php$text = "  Hello, PHP World!  ";$clean = trim($text);$parts = explode(", ", $clean);echo $parts[0]; // Helloecho str_replace("World", "Universe", $clean); // Hello, PHP Universe!?>


3. 日期和时间处理(DateTime)

DateTime类及其派生类已完全取代了旧的date()函数:

  • DateTime::createFromFormat() — 解析字符串
  • DateInterval — 处理时间间隔
  • DatePeriod — 日期范围迭代
<?php$now = new DateTime('now');$birthday = new DateTime('2025-05-15');$interval = $now->diff($birthday);echo $interval->days . " 天到生日";?>


4. 文件系统(Filesystem Functions)

PHP标准库提供了完整的文件和目录操作工具:

  • file_get_contents(), file_put_contents() — 快速读写
  • fopen(), fwrite(), fclose() — 底层操作
  • scandir(), mkdir(), unlink() — 目录管理
  • is_file(), is_dir(), file_exists() — 检查操作
<?php$content = file_get_contents('data.txt');file_put_contents('backup.txt', $content);$files = array_diff(scandir('./uploads'), ['.', '..']);?>


5. 数据库操作(PDO - PHP Data Objects)

PDO是一个用于操作多种数据库(MySQL, PostgreSQL, SQLite)的统一接口:

  • 预处理语句(prepared statements) — 防止SQL注入
  • 支持commit/rollback的事务处理
  • 不同数据库的统一API
<?php$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');$stmt = $pdo->                    

推荐