初学者最常犯的 10 个 PHP 错误
你编写了代码。你点击刷新。你看到的是一片空白。
这是因为 PHP 默认会静默失败。在开发过程中,你必须强制它显示错误。
在文件的顶部添加以下代码:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
不要在生产环境中使用这些代码。请改用文件日志。
以下是 10 个常见错误及其解决方法:
缺少分号 如果忘记写分号,PHP 将停止工作。这通常会导致静默崩溃。 修复:确保每个语句都以分号结尾。
弱类型比较 (== vs ===) 双等号会进行类型转换。这会导致逻辑错误。 修复:使用三等号 (===)。它会同时检查值和类型。
未定义的变量 在赋值之前使用变量会破坏你的逻辑。 修复:使用空合并运算符。 示例:
$name = $_GET['name'] ?? 'Guest';全局变量作用域 函数无法看到其外部的变量。 修复:将变量作为参数传递给函数。
SQL 注入 使用用户输入构建查询会让黑客能够窃取数据。 修复:使用带有占位符 (?) 的预处理语句。
跨站脚本攻击 (XSS) 直接打印用户输入会导致恶意脚本在浏览器中运行。 修复:使用
htmlspecialchars()包裹输出。标头已发送 (Headers Already Sent) 如果你已经向浏览器发送了文本,就无法重定向用户。即使是一个空格也会导致此错误。 修复:将
header()调用放在最顶部。重定向后务必使用exit()。未定义的数组键 访问不存在的表单键会导致警告。 修复:对所有
$_POST和$_GET数据使用空合并运算符。Include vs Require 如果文件缺失,
include只会显示一个警告。脚本会继续运行并在稍后崩溃。 修复:对于数据库连接等关键文件,请使用require_once。未检查的返回值 许多 PHP 函数在失败时返回
false。如果你立即使用该结果,会产生更多错误。 修复:在使用结果之前,先检查它是否为false。
成功秘籍:
- 在开发环境中开启错误报告。
- 对所有比较使用
===。 - 对所有用户输入进行清理 (Sanitize)。
- 检查返回值。
来源:https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh