str_split函数的实现问题

hackem 2009-08-10 08:58:58
if(!function_exists('str_split')){
function str_split($string,$split_length=1){
$count = strlen($string);
if($split_length < 1){
return false;
} elseif($split_length > $count){
return array($string);
} else {
$num = (int)ceil($count/$split_length);
$ret = array();
for($i=0;$i<$num;$i++){
$ret[] = substr($string,$i*$split_length,$split_length);
}

return $ret;
}
}
}

$ret[] = substr($string,$i*$split_length,$split_length);
这里,当每次for循环时,不就把上一次存入的字符给刷掉了吗?
...全文
110 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tfxg 2009-08-11
數據賦值不寫下標默認從0開始,下一次就加1
回复
phpboy 2009-08-11
$ret[] 是一个数组,LZ 可以 print_r($ret[]) 看看
回复
CYBEREXP2008 2009-08-11
楼上正解
回复
for($i=0;$i <$num;$i++){
$ret[] = substr($string,$i*$split_length,$split_length);
}

这个跟c语言不一样的,PHP这样写,默认下标会从0开始递增,不会自动覆盖的。
因为你的$ret = array(); 是数组。
回复
dzxccsu 2009-08-11
晕,你这样写$ret[]不就是个数组吗,默认数组,下标自动增加!
回复
阿_布 2009-08-11
楼上正解
回复
fenyao 2009-08-10
$ret[]代表从0开始键值自动增长
回复
testoktest 2009-08-10
$ret[]
类似于
$ret[$i]
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告