PHP里面最难的是那部分,那个PHP中号称最难的‘递归函数’

本文记录了作者在理解PHP递归函数时遇到的挑战,通过一个实例展示了如何使用递归函数遍历文件夹并读取所有文件。讨论了递归中$n++与$n+1的区别,以及在递归函数中continue和break的使用限制。同时澄清了die和exit函数在PHP中的实际等价性。文章以一个简单的文件遍历函数作为示例,帮助读者更好地掌握递归概念。
摘要由CSDN通过智能技术生成

标签:php

昨天处理了一些私事,所以耽搁了一天,好在递归函数比较难以理解,所以今天有幸听了一遍:这个基于回调函数而存在的函数,的确不太好理解,需要将逻辑上的想法完全梳理通才可以顺利书写,这还是在拥有公式的情况下。

在经理的带领下,我们做了一个用递归函数打开当前文件夹,并且读取文件夹内所有文件的一个函数,现将代码整理如下:<?php

//打开文件夹:opendir;

// $a = opendir(‘.‘);

// //读取内容:readdir(资源名);

// $b = ‘‘;

// while(($b = readdir($a)) !== false){

// echo $b."
";

// }

// closedir($a);

?>

function digui($path,$n=0){

$a = opendir($path);

//读取内容:readdir(资源名);

$b = ‘‘;

while(($b = readdir($a)) !== false){

if($b == ‘.‘ ||$b == ‘..‘){

continue;

}

echo str_repeat("--", $n);

if(is_dir($path."/".$b)){

echo "文件夹".$b,"
";

//当需要一层层地打开所有文件夹之时,因为重复的就是此函数本身,所以使用递归。

digui($path."/".$b,$n+1);

continue;

}

echo $b."
";

}

closedir($a);

}

// $a = ‘.‘;

digui(".");

?>

一眼看上去,代码本身不算难,但中间出了一个困扰许久的问题就是在使递归函数自身重复的时候,$n++和$n+1的问题,涉及到了它会怎样显示。

还有,continue和break在函数本身不涉及到循环时,是不可以使用的,否则会出现致命性错误,而die函数则可以在终止函数的同时,停止die命令之后所有的PHP,号称终极剧毒。

网上所说的“die”和“exit”一个终止代码且清理缓存,另一个只终止代码,纯属谣传,二者的源代码一模一样,只是个别名而已,特此标记出来。

以上。

晚安。

还有,希望经理明天身体恢复健康。

标签:php

原文:http://12254243.blog.51cto.com/12244243/1884884

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值