iamjonesy
iamjonesy

Reputation: 25122

PHP: cannot redeclare class

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

Upvotes: 0

Views: 17660

Answers (6)

Spudley
Spudley

Reputation: 168645

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).

Upvotes: 2

petsagouris
petsagouris

Reputation: 1763

You can always:

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

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

Upvotes: 3

nothrow
nothrow

Reputation: 16168

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

Upvotes: 1

Jacob Relkin
Jacob Relkin

Reputation: 163228

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

Try using include_once or require_once.

Upvotes: 1

burkestar
burkestar

Reputation: 777

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

Upvotes: 11

Alex Howansky
Alex Howansky

Reputation: 53513

Use require_once.

Upvotes: 1

Related Questions