У меня есть функция A в файле B.inc
line 2: function A() {
...
line 10: }
В журнале apache:
PHP Неустранимая ошибка: не удается переопределить A() (ранее объявленный в B.inc: 2) в B в строке 10
У меня есть функция 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");
require_once()
позволяет вам вызывать файл везде, где это необходимо, но на самом деле анализирует его, если он еще не разбирался.
убедитесь, что вы require_once ( 'B.inc' )
или `include_once ('B.inc') '
Эти люди в порядке, но вместо этого используют функции php5, autoload и вместо статических методов. Методы, связанные с объектами, в основном лучше, но использование статических методов позволяет повторно использовать имя метода во многих классах. вы можете вызвать статический метод, подобный этому
ClassName::myFunction();