
本文介绍一种不使用任何 for/while 循环,仅借助 `str_repeat()` 和逻辑拼接生成标准 8×8 棋盘 html 表格的简洁方案,适用于教学演示或函数式风格编码场景。
国际象棋棋盘是经典的黑白交替 8×8 网格,其规律性极强:每行由 4 组「黑-白」或「白-黑」单元格构成,且奇偶行交替排列。利用这一特性,我们完全可以避开传统循环结构,转而采用 PHP 内置的字符串重复函数 str_repeat() 实现声明式构建。
核心思路如下:
- 定义单个
的基础模板; - 构造一行「黑-白-黑-白-黑-白-黑-白」→ 即 str_repeat($black . $white, 4);
- 构造另一行「白-黑-白-黑-白-黑-白-黑」→ 即 str_repeat($white . $black, 4);
- 将这两行组合为一个完整“双行单元”:"
... ... "; - 最后对该双行单元重复 4 次,即覆盖全部 8 行。
以下是完整可运行代码:
"; $white = "$td'white'>"; echo str_repeat( "
" . str_repeat($black . $white, 4) . " " . "" . str_repeat($white . $black, 4) . " ", 4 ); ?>✅ 优势说明:
立即学习“PHP免费学习笔记(深入)”;
- 零循环语句,符合题设约束;
- 代码短小、可读性强,体现函数式思维;
- 性能高效(str_repeat 是 C 层实现,远快于 PHP 解释器逐次迭代)。
⚠️ 注意事项:
- bgcolor 属性在 HTML5 中已废弃,生产环境建议改用内联 CSS:style="background-color:black;";
- 表格尺寸(如 width="270px")需与单元格 width="20px" × 8 = 160px 匹配,当前示例中 270px 显得宽裕,建议统一为 width="320px"(40px × 8)以确保视觉对齐;
- 若需响应式或语义化增强,应进一步替换为 CSS Grid 或 Flexbox 布局。
该方法不仅解决了“无循环打印棋盘”的技术挑战,更展示了如何将重复模式抽象为字符串操作——这是 PHP 中轻量级模板生成与代码精简的重要实践路径。











