本文目录导读:

在 PHP 项目中,废弃函数需要根据具体废弃的函数来替换,以下是常见的废弃函数及其新版等效写法:
MySQL 扩展(已移除)
旧写法(已废弃)
// mysql_connect
$conn = mysql_connect('localhost', 'user', 'pass');
mysql_select_db('dbname', $conn);
$result = mysql_query('SELECT * FROM users');
while($row = mysql_fetch_assoc($result)) {
echo $row['name'];
}
新写法(MySQLi)
// MySQLi 面向对象
$mysqli = new mysqli('localhost', 'user', 'pass', 'dbname');
$result = $mysqli->query('SELECT * FROM users');
while($row = $result->fetch_assoc()) {
echo $row['name'];
}
// 或 PDO
$pdo = new PDO('mysql:host=localhost;dbname=dbname', 'user', 'pass');
$stmt = $pdo->query('SELECT * FROM users');
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['name'];
}
字符串函数
ereg()/eregi() → 使用 preg_match()
// 旧
if (ereg('^[a-z]+$', $str)) { }
// 新
if (preg_match('/^[a-z]+$/i', $str)) { }
ereg_replace()/eregi_replace() → 使用 preg_replace()
// 旧
$result = ereg_replace('pattern', 'replacement', $string);
// 新
$result = preg_replace('/pattern/i', 'replacement', $string);
split() → 使用 preg_split() 或 explode()
// 旧
$parts = split(':', $string);
// 新
$parts = preg_split('/:/', $string);
// 或(简单分割)
$parts = explode(':', $string);
数组函数
each() → 使用 foreach
// 旧
while(list($key, $value) = each($array)) {
echo "$key: $value";
}
// 新
foreach($array as $key => $value) {
echo "$key: $value";
}
array_rand() 的 seed 参数已废弃
// 使用 mt_rand() 替代 mt_srand(12345); $random_key = array_rand($array);
对象和类
__autoload() → 使用 spl_autoload_register()
// 旧(已废弃)
function __autoload($class) {
include 'classes/' . $class . '.class.php';
}
// 新
spl_autoload_register(function($class) {
include 'classes/' . $class . '.class.php';
});
日期和时间函数
date()/time() 的某些用法
// 使用 DateTime 类
$date = new DateTime('now');
echo $date->format('Y-m-d H:i:s');
其他常用废弃函数
mysql_real_escape_string() → 使用参数化查询
// 旧
$safe = mysql_real_escape_string($input);
// 新(MySQLi)
$safe = $mysqli->real_escape_string($input);
// 或推荐使用 prepared statements
$stmt = $mysqli->prepare('INSERT INTO users (name) VALUES (?)');
$stmt->bind_param('s', $input);
define() 的 case-insensitive 参数已废弃
// 旧(已废弃)
define('CONST', 'value', true);
// 新(PHP 7.3+ 移除,请使用大写常量)
define('CONST', 'value');
快速替换工具
可以编写简单的 PHP 脚本替换:
// 批量替换废弃函数
function replaceDeprecatedFunctions($code) {
$replacements = [
'mysql_connect' => 'new mysqli',
'mysql_query' => '->query',
'ereg' => 'preg_match',
'eregi' => 'preg_match',
'split' => 'preg_split',
'each' => 'foreach',
];
$code = str_replace(
array_keys($replacements),
array_values($replacements),
$code
);
return $code;
}
最佳实践建议
- 使用 IDE 检测:PhpStorm 等 IDE 会自动标记废弃函数
- 查看 PHP 版本更新日志:在 PHP 官方文档 查看废弃函数列表
- 使用静态分析工具:如 PHPStan、Psalm 可以检测废弃函数使用
- 渐进式升级:先升级到 PHP 7.x,再过渡到 8.x,每个版本都有详细的废弃函数说明
替换时最重要的是测试,确保功能不变,建议先在开发环境全面测试后再部署到生产环境。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播