Wpis z mikrobloga

inna sprawa to ten if zawsze weryfikuje prawda/fałsz
więc jak robisz operację
if (cośtam) { $x = true } else { $x = false }
to możesz to zapisać
$x = cośtam

w Twoim przypadku całego ifa możesz podmienić na

$sortedL = $object->Comparable($object[$i+1],$object[$i])

pomijając że $object nadal jest tablicą i to się nie wykona ;)
@cagedindreams:
1. ja bym od razu w tej metodzie isSorted robił return false jeśli choć raz w pętli wyjdzie, że tablica jest nieposortowana - nie ma sensu sprawdzać dalej ;-) coś w tym stylu:

function isSorted($object): bool
{
for ($i = 0; $i < count($object)-1; $i++) {
if (!$object->Comparable($object[$i+1],$object[$i])){
return false;
}
}

return true;
}

2. I raczej zrobiłbym klasę abstrakcyjną niż traita - nie jest to błąd, raczej moja
@stackhouse: zwróć uwagę, że w pętli jest ostra nierówność. więc w ostatniej iteracji będzie $i=18, bo później $i=19 nie jest < od count($object)-1 = 19, czyli nie wyjedziemy poza zakres tablicy robiąc to $i+1

Fakt jest mało czytelnie, ale na moje oko poprawnie. ;-)
@yelm: Dziękuję Ci bardzo za wyjaśnienie wszystkiego i celne uwagi. Twoje rozwiązania są prostsze i czytelniejsze. Na pewno zwrócę na to uwagę podczas pisania kolejnych linijek. A część zastosowanych rozwiązań to wymóg prowadzącego - też mi się to nie podoba ale ¯\_(ツ)_/¯