永发信息网

这句PHP代码是什么意思?

答案:6  悬赏:30  手机版
解决时间 2021-02-03 21:25
  • 提问者网友:沉默菋噵
  • 2021-02-03 08:33
function scan_dir($arr){
$array=scandir($arr);
foreach ($array as $val){
if($val!="." && $val!=".." && is_dir($arr."/".$val)){
scan_dir($arr."/".$val);
}else{
echo $arr."/".$val."<br/>";
}
}
}

主要是if语句里的 $val!="." && $val!=".." 这是什么意思?
最佳答案
  • 五星知识达人网友:像个废品
  • 2021-02-03 08:56
这个定义的函数不够严谨,应该这样定义
function scan_dir($sDir){ //扫描指定的路径下的所有目录
$array=scandir($sDir); //直接扫描目录,PHP的内部系统函数
foreach ($array as $val){ //将得到的目录罗列出来
if($val!="." && $val!=".." && is_dir($sDir."/".$val)){ //目录不不 . 并且不是 ..的目录,并且并且取出的这个目录名称是不是有效的目录名字
scan_dir($sDir."/".$val); //如果是有效的目录名,递归一下再调用自己.
}else{
echo $sDir."/".$val."<br/>"; //如果不是目录,(那么就是文件了,直接显示出来)
}
}
}

'.'与'..' 在 WINDOWS还是LINUX 下都是系统目录,任何一个目录下都是有的,一个是代表当前的目录,另一个代表上一级目录.
如 cd . 执行后永远是当前目录,而 cd ..则返回上一级目录,可以在dos下自己去试一下就会理解了.(开始->运行->cmd 进入DOS终端)
全部回答
  • 1楼网友:不如潦草
  • 2021-02-03 13:42
不是当前目录(.)或者上级目录 (..)
  • 2楼网友:白昼之月
  • 2021-02-03 13:35

$catid = empty($_get['catid'])?0:intval($_get['catid']);

这是三元运算符,不是什么链接。

意思是:如果获取的$_get['catid']是空的话,就把0赋值给$catid,如果不为空,就把$_get['catid']取整后赋值给$catid。

  • 3楼网友:孤老序
  • 2021-02-03 13:25
不要被误导 如果Linux 里面输入 ls -al 命令,会出现 . .. 和其他的文件名 如果仅仅是 . .. 那么表示当前文件夹里面没有文件 即为空文件夹 括号里,你在问的 $val!="." && $val!=".." 是在判断 是否不为空文件夹
  • 4楼网友:迟山
  • 2021-02-03 11:50
点:当前文件夹; 点点:上一级文件夹; .和..是打开目录函数时所产生的两个值,无意义而且影响遍历,所以跳过.
  • 5楼网友:第幾種人
  • 2021-02-03 10:11
$val!="." && $val!=".." 这个代码是遍历文件夹 .表示当前目录 ..表示上级目录 if($val!="." && $val!=".." && is_dir($arr."/".$val)){ 这句话的意思就是 如果$val不等于当前目录 同时不等于上级目录 同时又是个目录 才执行下面的代码块
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯