В отношении comparing objects in PHP SPL единственное сравнение, которое имеет смысл, - это равенство объекта (==
или ===
). Они ведут себя так, как вы ожидали от них; ==
будет истинным, если два объекта одного класса и атрибуты которых имеют одинаковые значения. ===
будет истинным только в том случае, если два сравниваемых объекта являются одним и тем же экземпляром. не
Там будет нет встроенного Comparable
интерфейса для использования или магического __compare
метода, который бы переопределить поведение по умолчанию для других операторов сравнения. Вы можете, однако, сделать свой собственный интерфейс, если вы хотите:
// From @vascowhite: http://stackoverflow.com/a/17008682/697370
interface Comparable
{
/**
* @param Comparable $other
* @param String $comparison any of ==, <, >, =<, >=, etc
* @return Bool true | false depending on result of comparison
*/
public function compareTo(Comparable $other, $comparison);
}
Существует PHP RFC, что в настоящее время «обсуждается» в отношении PHP7 (это было последнее обновление 2015-02-19), который хочет тянуть в интерфейсе Comparable
к SPL.
См. Http://php.net/manual/en/language.oop5.object-comparison.php – Dharmendra