这个就是我根据楼主的理解写出的代码,证实输出结果为“ abc1defabc2defabc3defabc4defabc5defabc6defabc7defabc8defabc9def ”。
<?php
function print_format($str)
{
$a=explode('$',$str);
for($i=1;$i<10/*这里限制循环9次*/;$i++)
{
$b[$i]=$a['0'].$i.$a['1'];//取$字符前的字符并合并$i变量再合并字符$后的字符,赋值b
}
return $b[1].$b[2].$b[3].$b[4].$b[5].$b[6].$b[7].$b[8].$b[9];//合并9次循环的数组b为一个字符串
}
echo print_format('abc$def');//输出字符
?>
<?php
function print_format($str)
{
$a=explode('$',$str);
for($i=1;$i<10/*这里限制循环9次*/;$i++)
{
$b[$i]=$a['0'].$i.$a['1'];//取$字符前的字符并合并$i变量再合并字符$后的字符,赋值b
}
return $b[1].$b[2].$b[3].$b[4].$b[5].$b[6].$b[7].$b[8].$b[9];//合并9次循环的数组b为一个字符串
}
echo print_format('abc$def');//输出字符
?>
<?php
function print_format($str)
{
$a=explode('$',$str);
for($i=1;$i<10/*这里限制循环9次*/;$i++)
{
$b[$i]=$a['0'].$i.$a['1'];//取$字符前的字符并合并$i变量再合并字符$后的字符,赋值b
}
echo $b[1].$b[2].$b[3].$b[4].$b[5].$b[6].$b[7].$b[8].$b[9];
}
print_format('abc$def');
?>
a("sss{0},{1},fdsg{2}", 参数1,参数2,参数3)不知道PHP是否可以实现?
for($i=1;$i <10;$i++)
echo $str.$i.$param.$param1.$param2;
}$param提供了默认参数,楼主可以传递,也可以不传递.如果传递了值,就会用你的值,没有传递就用默认值null
print_format("sss{0},{1}",参数1,参数2)
print_format("sss{0},{1}",参数1,参数2,参数3)
都可以
try..function replace()
{
$args = func_get_args();
$argNum = count($args) - 1;
if($argNum>=0)
{
for($i=0;$i<$argNum;$i++)
{
$r[] = '{'.$i.'}';
}
$str = array_shift($args);
return str_replace($r,$args,$str);
}
return false;
}
echo replace("sss{0},{1},fdsg{2}",'参数1','参数2','参数3');
{
for($i=1;$i <10;$i++)
echo str_replace('$i',$i,$str);
} print_format('abc$idef');