PHP致命错误从无效上下文调用私有Uploade :: __ construct()(构造是公共的)

时间:2013-08-12 19:06:48

标签: php oop

我遇到的问题是一个奇怪的问题,日志文件说我的班级中叫做“上传”的__construct方法是私有的,但实际上它是公开的!所以错误毫无意义。这是我的班级代码;

class Upload
{ 
    public $Errors; 
    public $ImageTypes;
    public $CDN_URL;
    public $UploadPath;
    private $MaxHeight;
    private $MaxWidth;
    private $MaxTokenLength;
    private $ForceMaxDimensions;
    private $MaxFileSize = 5; 

    public function __construct() 
    {
        include_once 'config.php';

        $this->ImageTypes = array('JPG', 'PNG');
        $this->Errors = array();

        # convert from megabytes to bytes
        $this->MaxFileSize = $this->MaxFileSize * 1048576;
    }
}

这是我开始上课的方式;

include_once 'upload.php';
$Upload = new Upload;

这是我日志文件中的错误;

PHP Fatal error:  Call to private Upload::__construct() from invalid context

我在网上看了很多答案而且没有帮助过我,所以我非常希望得到Stackoverflow的答案!谢谢你的帮助。

编辑:config.php文件的内容

$ImageTypes = array('JPG', 'PNG');
$CDN_URL = 'CDN.php';
$UploadPath = 'uploads/';
$MaxHeight = 1000;
$MaxWidth = 1000;
$ForceMaxDimensions = TRUE;
$MaxFileSize = 5;// Mb

1 个答案:

答案 0 :(得分:0)

根据您发布的代码,上述错误无法发生。

我建议使用my answer to this question中的CStatementTracer

CStatementTracer使用PHP的tick功能跟踪每个执行的语句并将其转储到日志文件中。也就是说,您需要在应用程序的早期某处启用CStatementTracer