亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為啥報錯,說$arr未定義(return $arr;)?

<?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 回答

因為括號的問題 ?你存儲到 ?$arr里的 數據全是 boolean ?類型的數據 ?導致報錯了

0 回復 有任何疑惑可以回復我~
#1

jking54 提問者

非常感謝!
2015-07-13 回復 有任何疑惑可以回復我~

在函數開頭定義個$arr=[];就算file目錄下無文件都可以返回個空數組,不會報錯.

0 回復 有任何疑惑可以回復我~

你代碼寫錯了while (($pathname = readdir($handle)) !== false)

0 回復 有任何疑惑可以回復我~
#1

jking54 提問者

確實是這里的錯
2015-07-13 回復 有任何疑惑可以回復我~

想問你一下,$arr['file'][]=$item;這里面的$arr數組的定義在哪里呢?

0 回復 有任何疑惑可以回復我~
#1

jking54 提問者

沒有單獨的聲明,PHP可以用這種用法,網上說是要在php.ini中設置error_reporting=E_ALL &~ E_NOTICE或用error_reporting(E_ALL &~ E_NOTICE)或error_reporting(0)這幾種方法。但是我用了之后,雖然不會再報NOTICE,但是還是出不來正確的運行結果。
2015-07-12 回復 有任何疑惑可以回復我~

<?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));


0 回復 有任何疑惑可以回復我~

你把代碼貼出來給我們看看撒!以后這樣的問題,先把代碼貼出來再問呢。

0 回復 有任何疑惑可以回復我~
#1

jking54 提問者

好的,謝謝了。代碼已經貼出來。
2015-07-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為啥報錯,說$arr未定義(return $arr;)?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號