php类在另一个函数中调用函数时出错

php类在另一个函数中调用函数时出错,php,class,function,expressionengine,Php,Class,Function,Expressionengine,我有下面的类,里面有几个函数。调用Diskspace()函数中的get\u dir\u size()时出错。它不认识它。我做错了什么。此代码用于创建expressionengine插件 致命错误:调用未定义函数get\u dir\u size() class DiskSpace { public $return_data = ""; public function Diskspace() { $this->EE =& get_instanc

我有下面的类,里面有几个函数。调用
Diskspace()
函数中的
get\u dir\u size()
时出错。它不认识它。我做错了什么。此代码用于创建expressionengine插件

致命错误:调用未定义函数get\u dir\u 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)的行更改为:-

这段代码还有一些问题 这是什么<代码>$this->EE=&get_instance()
执行
closedir($dh)时也会出现错误如果声明它的
if
语句未执行。

将调用get\u dir\u size($dir\u name)的行更改为:-

这段代码还有一些问题 这是什么<代码>$this->EE=&get_instance()
执行
closedir($dh)时也会出现错误
如果在中声明的
if
语句未执行。

请记住,在对象内部调用objects own函数时,请使用$this指针变量

$total_size= round((get_dir_size($dir_name) / 1048576),2) ;
改为

 $total_size= round(($this->get_dir_size($dir_name) / 1048576),2) ;

如果您告诉我们错误发生在哪一行也很好。查看完整的错误日志也很好。

记住,当您在对象内部调用对象自己的函数时,请使用$this指针变量

$total_size= round((get_dir_size($dir_name) / 1048576),2) ;
改为

 $total_size= round(($this->get_dir_size($dir_name) / 1048576),2) ;

如果您告诉我们错误发生在哪一行也很好。看到完整的错误日志也很好。

我试过了。我仍然收到相同的错误
未定义函数get\u dir\u size()
。其中还有另一个get\u dir\u size$dir_size+=get_dir_size($dir_name./“$file)@哈拉尔啊,就是这样。不错,我试过了。我仍然收到相同的错误
未定义函数get\u dir\u size()
。其中还有另一个get\u dir\u size$dir_size+=get_dir_size($dir_name./“$file)@哈拉尔啊,就是这样。好的。