5.12 多次生成一个字符串
函数str_repeat()可以用来重复生成一个字符串,该函数的语法如下所示。
string str_repeat(string$input,int$num)
函数str_repeat()有两个参数:第1个参数$input是要重复生成的字符串;第2个参数$num是要重复的次数。参数$num的取值必须大于等于0,如果$num设置为0,该函数会返回一个空字符串。代码5-18演示了该函数的用法。
代码5-18 用函数str_repeat()重复生成字符串5-18.php
01 <?php
02 $str='jingle bells~,';
03
04 echo'重复输出两次:';
05 echo'<br/>';
06 echo str_repeat($str,2);//重复生成字符串2次
07
08 echo'<br/>';
09 echo'<br/>';
10 echo'当函数str_repeat()第2个参数为0时:';
11 echo'<br/>';
12 echo's='.str_repeat($str,0);
13 ?>
【代码解析】这段代码的执行结果如图5-18所示。从中可以看出,当函数str_repeat()第2个参数设定为0时,函数str_repeat()生成一个空字符串。
和str_repeat()类似的还有一个函数str_pad(),该函数用一个字符串补全另一个字符串的一定长度,也就是相当于一个字符串可能会多次生成。函数str_pad()的语法如下所示。
string str_pad(string$input,int$pad_length
[,string$pad_string[,int$pad_type]])
该函数将参数字符串$input补全到长度为$pad_length时返回,可以在字符串$input的左边、右边或者左右两边进行补全。可选参数$pad_string是用来补全的字符串,如果没有指定该参数,将默认使用空格进行补全。可选参数$pad_type用来指定补全方式,该参数的取值为:STR_PAD_RIGHT(在右边进行补全),STR_PAD_LEFT(在左边进行补全),STR_PAD_BOTH(同时在两边进行补全)。如果没有指定该参数,将在原字符串右边进行补全。代码5-19演示了该函数的用法。
代码5-19 重复字符串来补全另一个字符串5-19.php
01 <?php
02 $input="Story";
03
04 echo'/'.str_pad($input,10).'/';//输出字符串
05 echo'<br/>';
06 echo'<br/>';
07
08 echo str_pad($input,10,"-*",STR_PAD_LEFT);//用-*左端补齐字符串
09 echo'<br/>';
10 echo'<br/>';
11
12 echo str_pad($input,10,"*",STR_PAD_BOTH);//用*两端补齐字符串
13 echo'<br/>';
14 echo'<br/>';
15
16 echo str_pad($input,6,"***");//在右边补齐***
17 ?>
【代码解析】第4行没有指定要补全的字符串,所以默认为用空格补全。第8、12行都指定了用来补全的字符串,同时还指定了补全方式。代码5-19的执行结果如图5-19所示。