[英]php Class calling a function inside another function error
我有以下課程,里面沒有幾個功能。 我在get_dir_size()
Diskspace()
函數內調用get_dir_size()
時出現錯誤。 它沒有意識到。 我究竟做錯了什么。 該代碼用於創建一個expressionengine插件。
致命錯誤:調用未定義的函數get_dir_size()
class DiskSpace
{
public $return_data = "";
public function Diskspace()
{
$this->EE =& get_instance();
$dir_name = $_SERVER['DOCUMENT_ROOT']."/userfiles/";
/* 1048576 bytes == 1MB */
$total_size= round((get_dir_size($dir_name) / 1048576),2) ;
$this->return_data = $total_size;
}
public function get_dir_size($dir_name){
$dir_size =0;
if (is_dir($dir_name)) {
if ($dh = opendir($dir_name)) {
while (($file = readdir($dh)) !== false) {
if($file !="." && $file != ".."){
if(is_file($dir_name."/".$file)){
$dir_size += filesize($dir_name."/".$file);
}
/* check for any new directory inside this directory */
if(is_dir($dir_name."/".$file)){
$dir_size += get_dir_size($dir_name."/".$file);
}
}
}
}
}
closedir($dh);
return $dir_size;
}
}
將調用get_dir_size($ dir_name)的行更改為:-
$total_size= round(($this->get_dir_size($dir_name) / 1048576),2) ;
此代碼還有更多問題,這是什么? $this->EE = & get_instance();
而且,當您執行closedir($dh);
時也會出錯closedir($dh);
如果聲明所在的if
語句未執行。
請記住,當您在對象內部調用對象自己的函數時,請使用$ this指針變量。
$total_size= round((get_dir_size($dir_name) / 1048576),2) ;
改成
$total_size= round(($this->get_dir_size($dir_name) / 1048576),2) ;
如果您告訴我們錯誤發生在哪一行,那也很好。 看到完整的錯誤日志也將很高興。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.