str_repeat() 是 php 中用于重复字符串的函数,语法为 str_repeat(string $string, int $times): string;$times 必须为非负整数,支持生成分隔线、缩进、模板等,但不适用于多字节字符的视觉等宽重复。

str_repeat() 是 PHP 中一个简单但非常实用的字符串函数,用于将指定字符串重复若干次并返回新字符串。它常被用来快速生成分隔线、缩进、占位符或配置模板中的重复结构,无需循环即可完成。
基本用法与语法
函数签名如下:
str_repeat(string $string, int $times): string参数说明:
- $string:要重复的原始字符串,可以是任意长度,包括空格、符号或混合内容
- $times:重复次数,必须为非负整数;若为 0,返回空字符串;若为负数,会触发警告并返回空字符串
生成美观的控制台分隔线
在 CLI 脚本或调试输出中,用等号、破折号或星号快速画一条横线,提升可读性:
echo str_repeat("=", 50) . "\n"; // 输出 50 个等号echo str_repeat("- ", 25) . "\n"; // 输出 "- - - ... " 共 25 组这种写法比手动拼接或 for 循环简洁得多,也更易维护。
构建配置模板中的重复区块
比如生成 ini 风格的注释块或 YAML 的缩进占位:
$indent = str_repeat(" ", 3); // 生成 6 个空格,对应 3 层缩进$header = str_repeat(";", 40) . " CONFIG SECTION " . str_repeat(";", 40);再如批量生成数据库字段定义模板:
$fieldTpl = " `{{name}}` VARCHAR(255) NOT NULL,\n";$fields = str_repeat(str_replace("{{name}}", "title", $fieldTpl), 3);虽然真实项目中建议用数组+循环动态生成,但对固定结构的快速原型或脚本内嵌模板,str_repeat() 能显著减少代码量。
注意事项与常见坑
- 重复次数为浮点数时会被自动截断为整数(如 3.9 → 3),不报错但可能不符合预期
- 内存限制需留意:超大次数(如百万级)可能导致内存溢出,尤其在低配环境
- 不能直接用于多字节字符(如中文)的“视觉等宽”重复——它按字节重复,不是按字符;需要重复中文建议配合 mb_substr 等函数处理
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











