介绍
本篇文章给大家分享的是有关怎么在PHP中利用递归实现一个统计功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
1,统计代码行数,必然用到的两个关键的知识点:函数递归以及文件读取。
函数递归无非就是在函数的代码中调用本身的函数名,以此形成递归循环
function (param美元){ 如果才能(& # 39;条件# 39;) ,,,(param_son美元); 其他的才能 ,,,return 结果美元; }
在文件读取中,有很多读取方式,采用了文件()读取,按行读取,形成一个数组。
file_open 美元;=,文件(文件)美元;
2,完整的代码
& lt; php ?/* * ,* Created by  PhpStorm。 ,*用户:宫 ,*日期:2015/10/16 *大敌;时间:十六12 ,*/, function get_file_dir (dir美元){ 时间=美元才能dir_arr scandir ($ dir); 时间=美元才能file_arr 数组(); foreach才能(dir_arr 美元;as  dir_one美元){ ,,,如果(is_dir (dir.DIRECTORY_SEPARATOR。dir_one美元),,,,dir_one 美元;!=,& # 39;强生的,,,,,dir_one 美元;!=,& # 39;. . & # 39;){ ,,,,,file_arr_son 美元;=,get_file_dir (dir.DIRECTORY_SEPARATOR。dir_one美元); ,,,,,file_arr 美元;=,array_merge (file_arr, file_arr_son美元); 还有,,,}{ ,,,,,如果(dir_one 美元;==,& # 39;强生# 39;,| |,dir_one 美元;==,& # 39;. . & # 39;,| |,大小写敏感(dir_one & # 39;美元。php # 39;), & lt;=, 0) ,,,,,,,继续; ,,,,,美元file_arr [],=, dir.DIRECTORY_SEPARATOR。dir_one美元; ,,,} ,,} return 才能;file_arr美元; } , $ dir =,目录名(__FILE__); $ file_arr =, get_file_dir ($ dir); count 美元;=,0,,//计算换行 $ clean_count =, 0;//不计算换行 foreach (file_arr 美元;as $文件){ 时间=美元才能file_open 文件(文件); 美元才能line_count =, count ($ file_open); 美元才能count +=, line_count美元; foreach才能(file_open 美元;as  file_val美元){ ,,,如果(file_val 美元;==,PHP_EOL)/*如果nl2br (file_val美元),==,& # 39;& lt; br /祝辞& # 39;想通过这种方式,但是发现不可行,用var_dump (nl2br (file_val美元))进行打印,复制才可以*/,,,,,继续; ,,,美元clean_count + +; , ,,} } echo $ count强生# 39;- - - - - - - - - - - # 39;clean_count美元;