初学者常犯的 10 个 PHP 错误
你编写了代码。你刷新了页面。你看到的是一片空白。
这是因为 PHP 默认会静默失败。如果你看不到错误,你就无法修复它们。
在开始开发时,请在文件顶部添加以下代码行:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
这会强制 PHP 显示错误所在。请勿在生产环境中使用此设置。
以下是 10 个常见的错误及其修复方法。
缺少分号 PHP 需要分号来结束语句。如果你漏掉了一个,脚本就会停止运行。 修复:务必在每一行末尾添加分号。
松散比较 (Loose Comparison)
==运算符在比较前会改变类型。这会导致错误的结果。 修复:使用===。它会同时检查值和类型。未定义变量 使用未创建的变量会导致逻辑错误。 修复:使用空合并运算符。
$name = $_GET['name'] ?? 'Guest';全局变量作用域 函数无法访问其外部的变量。 修复:将变量作为参数传递给函数。
SQL 注入 直接将用户输入放入查询语句中是非常危险的。攻击者可能会窃取你的数据。 修复:使用带有占位符的预处理语句 (prepared statements)。
跨站脚本攻击 (XSS) 将原始用户输入直接打印到屏幕上,会导致恶意脚本在浏览器中运行。 修复:对所有输出使用
htmlspecialchars()。Header 错误 在向浏览器发送任何文本或空格之后,你无法再发送 header。 修复:将
header()调用放在最顶部。重定向后务必使用exit()。缺失表单键 访问不存在的表单键会导致错误。 修复:使用空合并运算符来提供默认值。
Include vs Require 如果文件缺失,
include命令只会发出警告。脚本会继续运行,并在稍后崩溃。 修复:对于数据库连接等关键文件,请使用require_once。未检查返回值 许多 PHP 函数在失败时会返回
false。在下一步中使用该false值会导致程序崩溃。 修复:在使用结果之前,先检查函数是否返回了false。
编写更佳代码的总结:
• 在开发环境中开启错误报告。
• 使用 === 代替 ==。
• 检查返回值。
• 对所有用户输入进行清理 (Sanitize)。
来源:https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh