PHP函数、面向对象、内置函数库与Web交互(第二篇)
前言
在掌握了PHP基础语法、流程控制与数组之后,我们进入实战篇。本篇将系统讲解PHP开发的四大核心技能:函数、面向对象编程、常用内置函数库和Web交互。这些是构建动态网站的关键,学完你就能独立开发功能完整的Web应用。
目录
一、 函数:代码复用的核心
1.1 定义与调用
语法:function 函数名(参数){ 函数体; return 返回值; }
function add($a, $b) { return $a + $b; } echo add(3, 5); // 输出:81.2 参数传递
- 按值传递:默认方式,函数内修改不影响外部变量
- 按引用传递:参数前加
&,函数内修改会影响外部变量
function addOne(&$num) { $num += 1; } $x = 5; addOne($x); echo $x; // 输出:61.3 返回值
- 使用
return返回结果 - 执行到
return时函数终止
function isAdult($age) { if ($age >= 18) { return true; } return false; }二、 面向对象编程(OOP)
2.1 类与对象
类是对象的蓝图,对象是类的实例。
class Student { // 属性 public $name; public $age; // 方法 public function introduce() { echo "我叫{$this->name},{$this->age}岁"; } } $stu = new Student(); $stu->name = "张三"; $stu->age = 20; $stu->introduce();2.2 构造函数
对象创建时自动执行,用于初始化。
class Person { public function __construct($name) { echo "创建了:$name"; } } $p = new Person("李四"); // 自动执行2.3 访问修饰符
public:公有的,任何地方可访问private:私有的,仅类内部可访问protected:受保护的,类内部和子类可访问
三、 内置函数库
3.1 字符串函数
$str = "Hello World"; echo strlen($str); // 长度:11 echo strpos($str, "World"); // 查找位置:6 echo str_replace("World", "PHP", $str); // 替换 $arr = explode(" ", $str); // 分割为数组 echo implode("-", $arr); // 数组连接为字符串3.2 数组函数
$arr = [3, 1, 4, 2]; sort($arr); // 排序:[1,2,3,4] array_push($arr, 5); // 末尾添加 array_pop($arr); // 末尾移除 echo in_array(3, $arr); // 检查是否存在 echo count($arr); // 元素个数3.3 数学函数
echo abs(-5.5); // 绝对值:5.5 echo ceil(4.3); // 向上取整:5 echo floor(4.7); // 向下取整:4 echo rand(1, 100); // 1-100随机数 echo max(1,5,3); // 最大值:53.4 日期时间函数
date_default_timezone_set('Asia/Shanghai'); // 设置时区 echo date('Y-m-d H:i:s'); // 当前时间:2026-01-15 14:30:00 echo time(); // 当前时间戳 echo strtotime("next Monday"); // 下周一时间戳四、 Web交互
4.1 GET方式接收数据
数据通过URL传递,用$_GET接收。
<!-- 表单 --> <form action="process.php" method="get"> <input type="text" name="username"> <input type="submit" value="提交"> </form> <!-- URL:process.php?username=输入的值 -->// process.php $name = $_GET['username'] ?? '访客'; echo "你好," . htmlspecialchars($name);4.2 POST方式接收数据
数据在请求体中,用$_POST接收,更安全。
<form action="login.php" method="post"> 用户名:<input type="text" name="user"> 密码:<input type="password" name="pwd"> <input type="submit" value="登录"> </form>// login.php $user = $_POST['user'] ?? ''; $pwd = $_POST['pwd'] ?? ''; if($user && $pwd) { // 处理登录逻辑 }4.3 文件上传
表单需设置enctype="multipart/form-data"
if($_FILES['file']['error'] == 0) { $tmp_name = $_FILES['file']['tmp_name']; $new_name = "uploads/" . $_FILES['file']['name']; move_uploaded_file($tmp_name, $new_name); echo "上传成功"; }4.4 Session与Cookie
Session:服务器端存储
session_start(); $_SESSION['user'] = '张三'; // 设置 echo $_SESSION['user']; // 读取 session_destroy(); // 销毁Cookie:客户端存储
setcookie("user", "李四", time()+3600); // 设置,1小时过期 echo $_COOKIE['user']; // 读取 setcookie("user", "", time()-3600); // 删除五、 文件管理
5.1 文件读写
// 写入文件 file_put_contents("test.txt", "Hello PHP"); // 读取文件 $content = file_get_contents("test.txt"); echo $content; // 追加写入 file_put_contents("log.txt", "新日志\n", FILE_APPEND);5.2 文件信息
$file = "test.txt"; if(file_exists($file)) { echo "大小:" . filesize($file) . "字节"; echo "修改时间:" . date("Y-m-d", filemtime($file)); }5.3 目录操作
mkdir("new_folder"); // 创建目录 rmdir("empty_folder"); // 删除空目录 $files = scandir("."); // 列出目录内容 foreach($files as $file) { if($file != "." && $file != "..") { echo $file . "<br>"; } }结尾
至此,PHP的核心实战技能已全部讲解完毕。从函数封装、面向对象,到内置函数库的使用,再到Web交互和文件管理,这些都是开发动态网站的必备知识。
建议立即动手实践:尝试搭建一个留言板或简易博客,综合运用这些技术。遇到问题多查阅PHP官方文档(下图),这是最好的学习资料。编程之路,贵在坚持。祝你编码愉快,早日成为PHP高手!
