У меня есть функция A в файле B.inc
line 2: function A() { ... line 10: }
В журнале apache:
PHP Неустранимая ошибка: не удается переопределить A () (ранее объявленный в B.inc: 2) в B в строке 10
Я полагаю, что вы используете require "B.inc"
в нескольких частях? Можете ли вы попробовать использовать require_once
во всех этих случаях?
Кажется, что ваш B.inc анализируется дважды.
У меня была аналогичная проблема, когда функция, полностью содержащаяся в публичной функции внутри класса, сообщалась как переоформленная. Я уменьшил проблему до
class B { function __construct() { function A() { } } } $b1 = new B(); $b2 = new B();
Неустранимая ошибка: не удается выполнить повторную запись. A () создается при попытке создать $ b2.
Исходный автор кода защитил объявление класса от переопределения с if (! Class_exists ('B')), но это не защищает внутреннюю функцию A () от переопределения, если мы попытаемся создать более одного экземпляра класс.
Примечание. Это, вероятно, не та же проблема, что и выше, но это очень похоже на некоторые ответы в PHP. Неустранимая ошибка: не удается переопределить класс
Вы уже объявили A () в другом месте?
Или, вы звоните B.inc дважды по аварии?
попробуйте использовать: require_once («B.inc»);
Похоже, вы можете включить B.inc больше одного раза.
// Rather than include("B.inc"); // Do: require_once("B.inc");
в// Rather than include("B.inc"); // Do: require_once("B.inc");
require_once()
позволяет вам обращаться к файлу, где это необходимо, но на самом деле анализирует его, если он еще не разбирался.
убедитесь, что вы require_once ( 'B.inc' )
или `include_once ('B.inc') '
Эти люди все в порядке, а скорее используют php5, autoload и вместо статических методов. Методы, связанные с объектами, в основном лучше, но использование статических методов позволяет повторно использовать имя метода во многих классах. вы можете вызвать статический метод, подобный этому
ClassName::myFunction();