感觉老师的有些代码看起来比较高大上,但是可能会造成基础差一点的童鞋不能愉快的理解,比如这一段
function dirSize($path){ $sum = 0; global $sum; $handle = opendir($path); while(($item = readdir($handle)) !== false){ if($item != '.' && $item != '..'){ if(is_file($path.'/'.$item)){ $sum += filesize($path.'/'.$item); } if(is_dir($path.'/'.$item)){ $func = __FUNCTION__; $func($path.'/'.$item); //$sum += dirSize($path.'/'.$item); } } } closedir($handle); return $sum; }
老师这里用
$func = __FUNCTION__; $func($path.'/'.$item);
和一个全局变量来实现递归,但是不是很好理解呀,如果这样写
function dirSize($path){ $sum = 0; //global $sum; $handle = opendir($path); while(($item = readdir($handle)) !== false){ if($item != '.' && $item != '..'){ if(is_file($path.'/'.$item)){ $sum += filesize($path.'/'.$item); } if(is_dir($path.'/'.$item)){ /*$func = __FUNCTION__; $func($path.'/'.$item);*/ $sum += dirSize($path.'/'.$item); } } } closedir($handle); return $sum; }
不需要全局,也易于理解了..
不过上面的写法看起来逼格比较高,哈哈
写惯了C,我也是一开始就想到这种方法。
你的确实利于理解。