PHP: cannot redeclare class

2019-04-17 02:48发布

问题:

So I have 3 classes in this situation.

Connection.php
Engineer.php
Status.php

Both Engineer and Status classes actually use connection. Hasn't been a problem but now that I'm using both classes in a page I'm getting

Fatal error: Cannot redeclare class Connection

Is there a way round this? In both classes I need db access from the connection class.

Thanks,

Jonesy

回答1:

instead of using include() use require_once() for importing Connection.php into Engineer.php and Status.php.



回答2:

You can always:

if(  !class_exists('Connection') ) {
    include('Connection.php');
}

or just use include_once(link) or require_once (link) or autoload mechanism



回答3:

Use require_once() rather than require().

Or alternatively, use autoload, which saves you having to specify it loads of times.

I suspect the autoload functionality would be the best thing for you, assuming you're using a new-enough version of PHP (it requires 5.3).



回答4:

Use require_once.



回答5:

You are probably using an unsafe class file inclusion method, such as require or include.

Try using include_once or require_once.



回答6:

well, how are you including the Connection.php? try using require_once.



标签: php class