为啥报错,说$arr未定义(return $arr;)?

来源:1-2 获取首层目录信息

jking54

2015-07-11 13:37

<?php

//打开指定目录

/**

 * 遍历目录函数,只读取目录中的最外层的内容

 * @param string $path

 * @return array

 */

function readDirectory($path){

$handle=opendir($path);   //打开指定目录

while($item=readdir($handle)!==false){

//.和..2个特殊目录,.表示当前目录,..表示上级目录

if(($item!=".") && ($item!="..")){

if(is_file($path."/".$item)){

$arr['file'][]=$item;

}

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

$arr['dir'][]=$item;

}

else {echo "empty";}

}

}

closedir($handle);

return $arr;

}

$path="file";

print_r(readDirectory($path));


写回答 关注

6回答

  • qq__554
    2015-07-13 16:54:26
    已采纳

    因为括号的问题  你存储到  $arr里的 数据全是 boolean  类型的数据  导致报错了

    jking5...

    非常感谢!

    2015-07-13 18:21:00

    共 1 条回复 >

  • ttpo
    2016-11-28 08:29:19

    在函数开头定义个$arr=[];就算file目录下无文件都可以返回个空数组,不会报错.

  • qq__554
    2015-07-13 16:53:06

    你代码写错了while (($pathname = readdir($handle)) !== false)

    jking5...

    确实是这里的错

    2015-07-13 18:21:32

    共 1 条回复 >

  • 乔帮主
    2015-07-12 20:46:49

    想问你一下,$arr['file'][]=$item;这里面的$arr数组的定义在哪里呢?

    jking5...

    没有单独的声明,PHP可以用这种用法,网上说是要在php.ini中设置error_reporting=E_ALL &~ E_NOTICE或用error_reporting(E_ALL &~ E_NOTICE)或error_reporting(0)这几种方法。但是我用了之后,虽然不会再报NOTICE,但是还是出不来正确的运行结果。

    2015-07-12 22:06:58

    共 1 条回复 >

  • jking54
    2015-07-11 22:05:30

    <?php

    //打开指定目录

    /**

     * 遍历目录函数,只读取目录中的最外层的内容

     * @param string $path

     * @return array

     */

    function readDirectory($path){

    $handle=opendir($path);   //打开指定目录

    while($item=readdir($handle)!==false){

    //.和..2个特殊目录,.表示当前目录,..表示上级目录

    if(($item!=".") && ($item!="..")){

    if(is_file($path."/".$item)){

    $arr['file'][]=$item;

    }

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

    $arr['dir'][]=$item;

    }

    else {echo "empty";}

    }

    }

    closedir($handle);

    return $arr;

    }

    $path="file";

    print_r(readDirectory($path));


  • 乔帮主
    2015-07-11 18:29:46

    你把代码贴出来给我们看看撒!以后这样的问题,先把代码贴出来再问呢。

    jking5...

    好的,谢谢了。代码已经贴出来。

    2015-07-11 22:07:27

    共 1 条回复 >

WEB在线文件管理器

通过本课程文件目录函数库的学习,让你掌握文件、目录函数库的应用

36238 学习 · 346 问题

查看课程

相似问题