页面首次加载时因 `$_get[‘opcion’]` 不存在,导致 switch 未执行、相关变量未声明,进而引发“undefined variable”警告;正确做法是预设默认值或用条件包裹输出逻辑。
在 PHP 中使用 switch 处理 URL 参数(如 ?opcion=op1)是一种常见模式,但初学者容易忽略一个关键点:当页面首次访问(无 GET 参数)时,$_GET[‘opcion’] 根本不存在,isset() 返回 false,整个 switch 块被跳过——此时 $nombre、$posicion、$puntaje 和 $img 等变量从未被赋值,却在后续 HTML 中直接 echo,自然触发“Undefined variable”警告。
✅ 推荐两种安全写法(任选其一)
方案一:提前声明默认值(推荐用于需始终显示内容的场景)
为所有可能用到的变量赋予合理默认值,确保无论是否传参,变量都存在:
排名:
等级分:
@@##@@" alt="">暂无图片
立即学习“PHP免费学习笔记(深入)”;
✅ 优势:结构清晰、始终渲染 DOM,用户体验更连贯;配合 htmlspecialchars() 防止 XSS,增强安全性。
方案二:条件渲染(推荐用于“仅选中后才展示”的交互逻辑)
将整个