PHP - 致命错误:无法在第44行的/path/to/Config.php中重新声明类Config

jon*_*omo 1 php wordpress

这是我正在尝试使用的WordPress本地安装.我自己没有写过这行代码.我不明白这个错误意味着什么:

Fatal error: Cannot redeclare class Config in /Applications/XAMPP/xamppfiles/lib/php/Config.php on line 44
Run Code Online (Sandbox Code Playgroud)

第44行内容如下:

class Config {
Run Code Online (Sandbox Code Playgroud)

我的猜测是,某个Config类已经在其他地方声明过,或者该文件第二次被执行.

Ama*_*ali 5

当您在页面中多次声明一个类时,通常会发生这种情况 - 可能是通过多个包含.

为避免这种情况,请require_once改为使用.如果你使用require_oncePHP将检查文件是否已被包含,如果是,则不再包括(要求)它.

比如说,您有以下代码:

<?php

class foo {
    # code
}

... more code ...


class foo { // trying to re-declare
    #code
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,PHP将抛出类似于下面的致命错误:

致命错误:无法在第7行的/path/to/script.php中重新声明类foo

在这种情况下,它非常简单 - 只需找到代码的第7行并从那里删除类声明.

另外,为了确保您不尝试重新声明类,您可以使用方便的class_exists()功能:

if(!class_exists('foo')) {
    class foo { 
        # code
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,最好的方法是将所有配置组织在一个单独的文件中config.php,然后require_once在任何地方进行组织.这样,您可以确保它只包含一次.

至于调试错误,你可以使用debug_print_backtrace().