提问两个问题,注意虽然是两个但第一个几乎不算问题!谢谢~
问题1:虽然是判断是否为空目录,但如红框里的内容,不是目录也返回false,是不是容易混淆结果?
问题2:这个是我真正想问的问题~~
首先我先说下背景,因为我真的希望您们一次性就能回答完问题,这样貌似才是增加效率的方式,而非怪我们多提问题。背景是我已经看了之后的视频,回来再次提问的。
视频里提示:这里没有全部显示内容,是因为没有接受的变量,之后的视频是直接将内容赋值给数组
也就是说,之前不能显示是因为$arr 数组并没有保存递归函数的数据。
进一步分析,老师也曾经说过,while语句中的变量是全局的,但是函数体内的while语句,我猜他的作用域是函数内部都能访问到。按照正常思路,因为这个$arr 在函数内都能访问到,那么递归函数内的$arr 与这个最外层的是一个,但结果却说明,不是一个:
推论:递归函数内的$arr 在该次递归调用后就销毁了,所以不能真正的赋值。请问这对么?
提问:关于作用域、递归函数的问题,基本上都算一个问题
1.几种基本语句 if、switch、for、while等 条件括号里的变量与大括号里的变量都是全局的?为啥我在基本语句外调用这种变量会报错?
2.视频里老师 while嵌套switch并在switch里 continue 2 这是为啥?
3.递归函数 里 return false,是直接跳出所有递归,还是跳出当前递归。
总结:你们如果认真讲了作用域,我需要费这么大劲儿去推导么?
正在回答 回答被采纳积分+1
您好,1.同学红框位置的代码,只是在判断传参变量是否是一个目录。如果不是目录那么自然不用再操作目录是否为空的判断了,自然可以返回false。
2.“进一步分析,老师也曾经说过,while语句中的变量是全局的,但是函数体内的while语句,我猜他的作用域是函数内部都能访问到。”同学是否操作了代码,代码的结果不是猜测就可以知道结果的。另同学的推论依据是什么,有经过代码的验证码?请反馈验证的代码和结果。(函数内部的while循环中的变量可以在函数内部操作,但如果在函数外部操作是不可以的。变量除了是while循环内部的变量,同样也是函数内部的,自然会受到作用域的限制)
if、switch等内部的变量是局部变量,但如果if、switch等写在函数中时,if、switch等中的变量依旧只能在当前函数中使用。为函数中的局部变量。
同学说的“while嵌套switch并在switch里 continue 2 这是为啥”是在课程哪部分,请具体反馈。
递归函数里的return false;是在判断是否为目录,而代码中是在判断目录时才会进行的递归调用,并不存在同学说的问题,如果存在会结束函数。
编程具有逻辑,但并不是推导出来的,代码需要操作执行看结果的。祝学习愉快!
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星