PHP调用私有上载时发生致命错误::_construct()来自无效上下文(构造是公共的)

PHP调用私有上载时发生致命错误::_construct()来自无效上下文(构造是公共的),php,oop,Php,Oop,我遇到的问题很奇怪,日志文件说我的类中名为“Upload”的_构造方法是私有的,但实际上它是公共的!所以这个错误毫无意义。这是我的班级代码 class Upload { public $Errors; public $ImageTypes; public $CDN_URL; public $UploadPath; private $MaxHeight; private $MaxWidth; private $MaxTokenLength

我遇到的问题很奇怪,日志文件说我的类中名为“Upload”的_构造方法是私有的,但实际上它是公共的!所以这个错误毫无意义。这是我的班级代码

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

根据您发布的代码,上述错误不会发生

我建议使用中的
cstatementracer


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

实际上,您并没有使用
include\u一次性初始化类。你的代码中哪里有类似于
$Upload=newupload()的语句?config.php文件中有什么?@simonfuniic他问的原因。。。此代码按原样工作。观察:--这让我得出结论,您还有其他问题,这些问题在您发布的代码中并不明显。@simonfuniic--这样做,告诉我您得到了什么--注释掉您的include行:
//include_once'upload.php',然后将其添加到右下方:
打印“c/e:”。类_存在(“上载”);模具()。用输出返回报告。@beiller