You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP循环抛出Notice错误:未定义常量i,请求解决方案

解决PHP Notice: Use of undefined constant i的问题

这个错误其实是PHP新手常踩的小坑,咱们一步步拆解修复:

错误核心原因

你看到的Notice: Use of undefined constant i - assumed 'i',本质是PHP的变量必须以$开头。你在循环里写的$features[i]里的i没有加$,PHP会把它当成一个自定义常量来解析,但你根本没定义过名为i的常量,所以它只能默认把i当成字符串'i'处理,这就触发了警告,同时也会让你的数组访问逻辑完全出错。

顺带修正数组结构问题

另外你的数组定义也有个小疏漏:

$features[] = array("Feature 1", "Feature 2", "Feature 3", "Feature 4");

这里的$features[] = ...是把这个包含4个元素的数组,作为第一个元素追加到$features里,也就是说$features现在是个二维数组。如果你的本意是让$features直接存储这4个feature字符串,应该去掉[],改成一维数组定义。

两种修正后的完整代码

情况1:用一维数组(更符合你的输出需求,推荐)

// 直接定义一维数组存储feature列表
$features = array("Feature 1", "Feature 2", "Feature 3", "Feature 4");
for ($i=0; $i <4 ; $i++) { 
    // 把i改成$i,正确访问数组索引
    echo '<li class="list-group-item text-centre">'. $features[$i] . '</li>';
}

情况2:保留二维数组结构(如果确实需要这种嵌套结构)

$features[] = array("Feature 1", "Feature 2", "Feature 3", "Feature 4");
for ($i=0; $i <4 ; $i++) { 
    // 先访问$features的第一个元素,再取对应索引
    echo '<li class="list-group-item text-centre">'. $features[0][$i] . '</li>';
}

小提醒

PHP里所有变量(包括循环变量、数组索引变量)都必须带$前缀,这是语法基础,别偷懒漏掉哦~ 另外可以开启error_reporting(E_ALL),让PHP输出所有错误提示,能更早发现这类小问题,避免后续逻辑跑偏。

内容的提问来源于stack exchange,提问作者beginner115

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 13:42:33