news 2026/6/26 20:14:00

PHP Warning 与 Notice 大全:最容易踩的 20 个坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP Warning 与 Notice 大全:最容易踩的 20 个坑

“代码明明能跑,怎么满屏 Warning / Notice?”
“是不是我 PHP 学得不行?”
“这些报错不管行不行?”

说句大实话:
👉90% 的 PHP 新手,都是被 Warning 和 Notice 搞到怀疑人生的。

而且最气的是:

  • 不报 Fatal Error
  • 页面还能打开
  • 但日志刷屏、接口异常、header 报错连环炸

这篇文章,我就用人话,帮你一次性把PHP Warning / Notice 最容易踩的 20 个坑讲清楚。


一、先搞清楚:Warning / Notice 到底是啥?

很多新手第一反应是:

“是不是报 Warning 就是大问题?”

其实不是。

PHP 报错严重程度顺序(从轻到重)

1️⃣Notice(提醒你写得不规范)
2️⃣Warning(可能有问题,但还能跑)
3️⃣Fatal Error(直接崩)

⚠️ 但注意一句话:
Warning / Notice 本身不致命,但“连锁反应”很致命。


二、Notice 类:新手 10 个必踩坑

1️⃣ Undefined variable(用之前没定义)

echo $name;

❌ 常见场景:

  • 表单没提交
  • if 没走进去
  • 函数外变量没传进来

✅ 正确写法:

$name = $name ?? ''; echo $name;

2️⃣ Undefined index(数组键不存在)

echo $_POST['email'];

❌ 用户没填就炸

✅ 正确写法:

$email = $_POST['email'] ?? '';

3️⃣ Undefined offset(数组下标越界)

$arr = []; echo $arr[0];

✅ 解决思路:
用之前先判断:

if (isset($arr[0])) { echo $arr[0]; }

4️⃣ Trying to access array offset on value of type null

$data = null; echo $data['id'];

📌 本质:
你以为它是数组,其实是 null


5️⃣ Use of undefined constant

echo test;

PHP 会当成字符串前先 Notice 一下

✅ 正确写法:

echo 'test';

6️⃣ Only variables should be passed by reference

reset(explode(',', $str));

📌 这是老坑,新手 100% 会遇到


7️⃣ Array to string conversion

echo $arr;

📌 PHP:你想让我怎么输出?


8️⃣ Object of class could not be converted to string

和上面一个道理,只是对象版本


9️⃣ Notice 被 header 报错“连坐”

很多人忽略:
👉Notice 输出 = 页面已经有内容

后面再 setcookie / header,直接炸。


🔟 开发环境没开 error_reporting

不开调试,新手永远不知道自己错在哪。


三、Warning 类:更危险的 10 个坑

11️⃣ Cannot modify header information

🔥PHP 最经典报错之一

原因总结一句话:
👉header 之前,有任何输出

包括:

  • BOM
  • echo
  • Notice
  • 多余空行

12️⃣ fopen / file_get_contents 失败

file_get_contents($url);

❌ 常见原因:

  • 路径错
  • 权限不够
  • 远程文件被禁

13️⃣ include / require failed

include 'config.php';

📌 路径问题占 80%


14️⃣ Division by zero

$avg = $sum / $count;

$count = 0 的时候直接 Warning


15️⃣ Invalid argument supplied for foreach

foreach ($data as $v) {}

$data 其实是 null / false


16️⃣ mysqli_fetch_assoc expects parameter 1 to be mysqli_result

📌 SQL 执行失败,但你还在 fetch


17️⃣ count(): Parameter must be an array or Countable

PHP 7+ 高频坑


18️⃣ curl_exec(): SSL certificate problem

📌 curl + https + 证书


19️⃣ Cannot use a scalar value as an array

$a = 1; $a['x'] = 2;

20️⃣ Deprecated 准 Warning 级别(升级 PHP 后)

老项目升级 PHP,直接满屏。


四、新手必须记住的 3 条生存法则

✅ 1. 所有变量,用之前先判断

$var = $var ?? '';

✅ 2. 所有数组访问,用 isset / ??

$value = $arr['key'] ?? null;

✅ 3. 开发环境显示错误,生产环境记录日志

error_reporting(E_ALL); ini_set('display_errors', 1);

上线一定关显示!


五、这些 Warning / Notice 能不能不管?

能跑 ≠ 没问题

你现在不管,后面一定会遇到:

  • header 失效
  • 接口返回异常
  • JSON 输出被污染
  • 前端解析失败

👉很多“诡异 BUG”,根源就是一个 Notice。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 8:34:39

Wi-Fi® 网络管理技术

Wi-Fi Agile Multiband™ Wi-Fi Agile Multiband™ 有助于更好地管理 Wi-Fi 网络环境,并使 Wi-Fi 设备能够更好地响应不断变化的 Wi-Fi 网络条件。Wi-Fi 灵活多频段有助于高效利用多个频段,并包括更好地管理频谱和网络资源、平衡网络负载、提高移动性并提供最佳用户体验的机…

作者头像 李华
网站建设 2026/6/25 3:34:58

人工智能药学大会现场

如题,生信基地的小伙伴前两天参加了场学术会议,简单记录一下此次参会的收获。校长报告人工智能如何重塑药物研发的未来?智能药学将如何推动医药产业转型升级?是加速进程还是改变范式?首先上午第一场报告由校长提出三个…

作者头像 李华
网站建设 2026/6/25 23:21:05

X-CLIP多模态模型深度解析:视频理解的技术之旅

X-CLIP多模态模型深度解析:视频理解的技术之旅 【免费下载链接】xclip-base-patch32 项目地址: https://ai.gitcode.com/hf_mirrors/microsoft/xclip-base-patch32 在人工智能的快速发展中,多模态理解技术正成为连接视觉与语言世界的重要桥梁。X…

作者头像 李华
网站建设 2026/6/26 11:21:49

【Java】java 集合框架(详解)零基础入门到精通,收藏这篇就够了

1. 概述 🚀 🔥 Java集合框架 提供了一系列用于存储和操作对象组的接口和类。这些工具是为了解决不同数据结构通用操作的需求而设计的。集合框架主要包括两种类型的容器: 一种是 集合(Collection),用于存储…

作者头像 李华
网站建设 2026/6/26 3:44:30

告别手动提交:用Git Auto Commit Action实现自动化工作流

告别手动提交:用Git Auto Commit Action实现自动化工作流 【免费下载链接】git-auto-commit-action Automatically commit and push changed files back to GitHub with this GitHub Action for the 80% use case. 项目地址: https://gitcode.com/gh_mirrors/gi/g…

作者头像 李华
网站建设 2026/6/24 10:35:54

解决ComfyUI-SeedVR2视频超分项目wandb依赖冲突的3种实用方法

解决ComfyUI-SeedVR2视频超分项目wandb依赖冲突的3种实用方法 【免费下载链接】ComfyUI-SeedVR2_VideoUpscaler Non-Official SeedVR2 Vudeo Upscaler for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-SeedVR2_VideoUpscaler 你在使用ComfyUI-SeedVR2…

作者头像 李华