写点什么

PHP 传递参数(跨文件)的 8 种常见方法

  • 2025-04-10
    福建
  • 本文字数:1309 字

    阅读完需:约 4 分钟

以下是 PHP 中跨文件传递参数的 8 种常见方法,按场景和安全性分类整理,附详细说明和示例代码:


一、超全局变量(适合请求间数据共享)


1. $_GET / $_POST


  • 用途:通过 URL 或表单提交传递参数(客户端 → 服务器)

  • 示例

// file1.php<a href="file2.php?id=123&name=John">跳转</a> // file2.php$id = $_GET['id'];   // 获取 123$name = $_GET['name']; // 获取 John
复制代码


  • 注意:需对输入数据做过滤(如 filter_input()),防止 XSS 攻击。


2. $_SESSION


  • 用途:在会话期间跨页面保持数据(依赖 session_start()

  • 示例

// file1.phpsession_start();$_SESSION['user'] = 'Alice'; // file2.phpsession_start();echo $_SESSION['user']; // 输出 Alice
复制代码


  • 安全:需配置会话安全(如 session.cookie_httponly)。


3. $_COOKIE


  • 用途:客户端存储小型数据,自动随请求发送

  • 示例

// file1.phpsetcookie("theme", "dark", time() + 86400); // file2.phpecho $_COOKIE['theme']; // 输出 dark
复制代码


  • 限制:数据大小受限(约 4KB),需防范篡改。


二、文件包含(适合同请求内共享数据)


4. include / require + 变量


  • 用途:直接共享当前作用域变量(需注意变量污染)

  • 示例

// config.php$db_host = 'localhost'; // file1.phpinclude 'config.php';echo $db_host; // 输出 localhost
复制代码


  • 缺点:变量作用域不可控,可能导致命名冲突。


三、文件存储(适合持久化数据)


5. 文件读写


  • 用途:通过文件存储中间数据

  • 示例

// file1.phpfile_put_contents('data.txt', 'Hello World'); // file2.php$data = file_get_contents('data.txt'); // 读取 Hello World
复制代码


  • 注意:需处理文件锁(LOCK_EX)和并发冲突。


6. 数据库


  • 用途:通过数据库(如 MySQL)共享数据

  • 示例

// file1.php$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');$pdo->exec("INSERT INTO messages (content) VALUES ('Hello')"); // file2.php$stmt = $pdo->query("SELECT content FROM messages");$data = $stmt->fetchAll();
复制代码


  • 安全:必须使用预处理语句防止 SQL 注入。


四、序列化与反序列化


7. serialize() 和 unserialize()


  • 用途:存储复杂数据结构(如数组、对象)

  • 示例

// file1.php$data = ['name' => 'Bob', 'age' => 30];file_put_contents('data.dat', serialize($data)); // file2.php$data = unserialize(file_get_contents('data.dat'));echo $data['name']; // 输出 Bob
复制代码


  • 风险:反序列化可能执行恶意代码,需校验数据来源。


五、面向对象方法


8. 静态类属性 / 单例模式


  • 用途:通过类共享全局状态

  • 示例

// Config.phpclass Config {    public static $value = 'default';} // file1.phpConfig::$value = 'new value'; // file2.phpecho Config::$value; // 输出 new value
复制代码


方法对比与选择建议



总结


  • 临时数据传递:优先用 $_SESSION 或 include(注意作用域)

  • 客户端数据:用 $_GET/$_POST/$_COOKIE(必须过滤输入)

  • 持久化存储:选择文件或数据库

  • 全局状态管理:使用静态类属性或单例模式


文章转载自:嘉君 

原文链接:https://www.cnblogs.com/justin-Y/p/18817776

体验地址:http://www.jnpfsoft.com/?from=001YH

用户头像

还未添加个人签名 2025-04-01 加入

还未添加个人简介

评论

发布
暂无评论
PHP传递参数(跨文件)的8种常见方法_php_量贩潮汐·WholesaleTide_InfoQ写作社区