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
相关产品推荐
相关产品推荐

