2010-09-22 3 views
0

Итак, у меня есть 3 класса в этой ситуации.PHP: невозможно переопределить класс

Connection.php 
Engineer.php 
Status.php 

Как на уровне инженера, так и на уровне состояния на самом деле используют соединение. Не было проблемы, но теперь, когда я использую оба класса на странице, я получаю

Fatal error: Cannot redeclare class Connection 

Есть ли способ обойти это? В обоих классах мне нужен db-доступ из класса подключения.

Спасибо,

Джоунси

ответ

12

вместо использования include() использовать require_once() для импорта Connection.php в Engineer.php и Status.php.

+0

thansk! оно работает! – iamjonesy

1

Использование require_once.

1

Возможно, вы используете метод включения небезопасного класса, например require или include.

Попробуйте использовать include_once или require_once.

1

хорошо, как вы включаете Connection.php? попробуйте использовать require_once.

3

Вы всегда можете:

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

или просто использовать include_once (link) или require_once (link) или autoload механизм

2

Используйте require_once(), а не требуют().

Или, альтернативно, используйте autoload, что экономит ваше время, чтобы указать его много раз.

Я подозреваю, что функция автозагрузки была бы лучшей для вас, если вы используете новую версию PHP (для нее требуется 5.3).

Смежные вопросы