猿问

一段php代码,程序能运行,但同学说我代码有问题,求大神指点一下

functionmc_sc($a){//这是一个删除目录的函数,$a是要删除的目录路径
$b=scandir($a);
array_shift($b);
array_shift($b);
$str=$a;
foreach($bas$c){
$d=$a."/".$c;
if(is_dir($d)){
$str.=",".mc_sc($d);//这里我最后echo了一下$str,得到的是所有$a下的所有子目录路径,我不知道为什么,求大神指点一下。
}else{
unlink($d);
}
}
$e=explode(",",$str);
$f=array_reverse($e);
foreach($fas$g){
rmdir($g);
}
}
mc_sc("D:/wamp/www/css");
?>
qq_遁去的一_1
浏览 347回答 2
2回答

精慕HU

需要吐槽的地方太多:其实有比scandir()更好用一点的遍历函数,那就是glob,起码两个array_shift()和一个记录前缀的$str就完全不用了。ms_sc()函数都没有return值,我并不觉得能echo出所有的子目录,起码我没看出来,可能我眼拙了吧。这个是最值得吐槽的了,那个explode是怎么回事,要有多丑就有多丑,看着这样的代码简直愁死了。最后建议多看看手册,手册上已经有很多写的很好的代码了,比如用scandir()的这个代码写的就比你漂亮多了,然后这个代码就是用glob()的直接就比上一个代码少了一步,把这个代码浓缩精简恶趣味一下就是:functionr($d){foreach(glob("$d/*")as$f)is_dir($f)?r($f):unlink($f);returnrmdir($d);}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答