PHP中return true跟return false

  • 1,365

今天在论坛里面碰到一个问题感觉很有必要备份一下,是关于递归的return true跟return false的问题!这个问题对于接触过PHP的人都有过这样的经历吧?备份一下,留给以后学习的phper们!做一个参考:

论坛问题:


这两天一直被 return 搞的云里雾里。

比如说昨晚老师讲的递归:

//这是老师的代码:
function mk_dir($path){
 if (is_dir($path)){
  return true;
 }
 return  is_dir(dirname($path)) || mk_dir(dirname($path)) ? mkdir($path) : false;
 
 }echo mk_dir('./a/b/c/d/e') ? 'OK' : 'false';

但我理解了老师的语意后

1.如果path直接存在,那就直接跳出

2.其它情况,那肯定是else了。我把代码写成了如下:

function mk_dir($path){
        if (is_dir($path)){
                return true;                              //这里不加true跟加true有什么区别?
        }else {
                is_dir(dirname($path)) || mk_dir(dirname($path)) ? mkdir($path) : false;
        }
        
}

echo mk_dir('./a/b/c/d/e') ? 'OK' : 'false';        //但是结果是:false 只创建a目录

看似简单的reture,到我这里怎么就这么难理解呢。我提出如下几个问题:

1.这个return 撒时候用?

2.return 和return true 和 reture false 用在什么时候 ?

3.return 后面接一句代码 与 直接一条代码 有什么区别?

问题回帖者:


一楼:

递归是不太好理解,要想清楚什么时候该'递' 什么时候该'归' return就看作'归',如果一去不归,那就是坑爹.

二楼:

楼上说的很好! 调用是递,return 就是归的过程

./a/b/c/d/e 等./a/b/c/d/创建归来

./a/b/c/d 等 ./a/b/c/创建归来

./a/b/c/ 等 ./a/b/创建归来

./a/b/ 等 ./a/创建归来

a创建成功了,可你不归去告诉b呀......,

第5只小猴摘了桃子后不回去告诉第4只猴,第4只猴子哭了.

三楼:三楼画着这张图真的很棒!

PHP中return true跟return false

以上就是关于PHP中return true跟return false的理解。更新到这,如果还有不是很明白的同学那就再取百度咯!

weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2016年9月18日18:15:38
  • 转载请务必保留本文链接:https://www.150643.com/348.html
匿名

发表评论

匿名网友 填写信息