Сначала, если все, вы должны отдать предпочтение композиции перед наследованием .Возможно, ваше «могу ли я наследовать от нескольких классов» является признаком недостатка дизайна.
В любом случае, если вам нужен «упорядоченный класс списка флажков», структура должна быть:
class OrderedList extends List{}
class CheckboxList extends OrderedList{}
Кроме того, я бы предложил в этом случае избегать использования черт, потому что Черты в php на самом деле являются поддержкой Copy'n'Paste с помощью интерпретатора.Для этого нет явного преимущества.
Кстати, есть другой подход, на который вы могли бы обратить внимание: хотя CheckboxList расширяет List, у вас может быть другой объект, отвечающий за его упорядочение.Черт, если вы реализуете ArrayAccess
для класса List
, вы можете использовать только встроенную функцию sort()
/ usort()
(или ksory()
/ uksort()
в зависимости от того, какВы храните поля) .. думал, что я на самом деле не пробовал.