news 2026/4/17 14:14:05

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/4/16 14:15:27

AI“人生作弊器”来了,做运势能量管理,它为何备受欢迎?

当前,全球范围内的焦虑情绪蔓延,年轻人对自我认知、人生规划的需求日益迫切,AI玄学的赛道正迎来快速增长期。数科星球原创作者丨苑晶编辑丨大兔当金融圈的量化逻辑撞上玄学界的能量法则,看似对立的两个领域,在Timing创…

作者头像 李华
网站建设 2026/4/17 12:45:06

Wi-Fi® 设备指标

1 概述 1.1 范围与目的 本文档为 Wi-Fi 行业提供了一套测试用例,用于衡量家庭终端用户可能遇到的常见使用场景下的设备性能。本文档的首要前提是:终端用户会直接使用 “开箱即用” 的 Wi-Fi 设备,因此测试基于设备的默认状态执行。这种方式与行业趋势(尤其是接入点和 Mes…

作者头像 李华
网站建设 2026/4/16 14:17:54

Atomic Norm for Parametric Estimation of Sparse Channels

Abstract — 毫米波 (mmWave) 传播的稀疏和高度定向特性为高效信道估计带来了挑战和机遇。我们通过将问题表述为无网格多维 (M-D) 谱估计问题,解决了毫米波多输入多输出 (MIMO) 系统中的稀疏参数化信道估计问题。该信道被建模为在连续到达角 (AoA) 和离开角 (AoD) 域…

作者头像 李华
网站建设 2026/4/17 12:36:25

Hilo游戏引擎完整指南:如何快速构建跨平台HTML5游戏

Hilo游戏引擎完整指南:如何快速构建跨平台HTML5游戏 【免费下载链接】Hilo A Cross-end HTML5 Game development solution developed by Alibaba Group 项目地址: https://gitcode.com/gh_mirrors/hi/Hilo 🎮 作为阿里巴巴集团精心打造的HTML5游戏…

作者头像 李华
网站建设 2026/4/16 12:04:51

实习面试题-Kafka 面试题

1.Kafka 是什么?它的主要应用场景有哪些? 回答重点 Kafka是一种分布式流事件处理平台,最初由 LinkedIn 开发,现在是 Apache 基金会的一部分。它的核心功能主要包括消息队列、流处理和数据集成。Kafka以高吞吐量、低延迟、可扩展和高容错性著称。 Kafka的主要应用场景有:…

作者头像 李华
网站建设 2026/4/16 13:00:20

3分钟搭建专业个人作品集网站:Astrofy模板深度解析

3分钟搭建专业个人作品集网站:Astrofy模板深度解析 【免费下载链接】astrofy Astrofy is a free and open-source template for your Personal Portfolio Website built with Astro and TailwindCSS. Create in minutes a website with Blog, CV, Project Section, …

作者头像 李华