Оба блока кода определяют один и тот же класс:
class QEnterKeyEvent extends QKeyDownEvent {
protected $strCondition = 'event.keyCode == 13';
}
Из приведенного вами примера кода имеет смысл определить этот класс полностью за пределами операторов if / else, что сократит объем кода для обслуживания и устранит вашу ошибку.
Тем не менее, я подозреваю, что вы можете не соответствовать скобкам при чтении кода; из фрагмента при его вставке ошибка не должна возникать.
Если определение второго класса встречается так же, как и первое (поскольку они не являются частью одного и того же условного выражения), вы ожидаете увидеть эту ошибку.
Если вы решили не реструктурировать свой код, чтобы избежать дублирования (у вас могут быть веские причины для текущей структуры, которые не указаны в приведенном вами фрагменте), вы можете использовать PHP class_exists () чтобы избежать попытки дублирования определения класса:
} else {
if ( !class_exists('QEnterKeyEvent') ) {
class QEnterKeyEvent extends QKeyDownEvent {
protected $strCondition = 'event.keyCode == 13';
}
}
}
Если вы используете этот подход, имеет смысл тщательно проверить, что класс определен так, как вы этого ожидаете во всех случаях.
PS. Это пример кода из кодовой базы QCodo? Если это так, вы, вероятно, должны сообщить об этой проблеме через их форум "Ошибки и проблемы".
PPS. О, посмотри. См. это и это ...