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

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

關于sum

$sum放到里面,它初始化為0,里層的遞歸不影響外層遞歸中的$sum的值嗎,搞不明白了

<?php

$sum=0;

function dirSize($path){

//$sum=0;

global $sum;

$handle=opendir($path);

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

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

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

$sum+=filesize($path."/".$item);

}

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

//$func=__FUNCTION__;

dirSize($path."/".$item);

}

}

}

closedir($handle);

return $sum;

}

$path="file";

echo dirSize($path);


正在回答

1 回答

函數中的變量是局部變量,函數執行完畢之后就被釋放掉了

^-^...

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

薛_森 提問者

非常感謝!
2015-08-31 回復 有任何疑惑可以回復我~
#2

PdpdPdpd

老師,我發現dirsize里面的$sum=0就算是改成$=10000也不會對結果產生影響,這個同學的提問應該是$sum成為全局變量后,正常來講應該改依舊無法累加(因為函數的第一個語句就是$sum=0,每次遞歸都會清零)。其實dirsize函數中$sum=0這個語句是不起作用的,我猜是不是因為它是局部變量,而global后的$sum指向的是全局變量,實際上這已經是兩個不同的變量了,所以global后的$sum(全局),并不會受dirsize函數中的$sum=0(局部)語句的影響?
2017-07-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
WEB在線文件管理器
  • 參與學習       36241    人
  • 解答問題       346    個

通過本課程文件目錄函數庫的學習,讓你掌握文件、目錄函數庫的應用

進入課程
微信客服

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

幫助反饋 APP下載

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

公眾號

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