56 lines
1.7 KiB
PHP
56 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace goodboyalex\php_components_pack\traits\GUID;
|
|
|
|
use Deprecated;
|
|
|
|
/**
|
|
* Часть кода класса GUID, отвечающая за реализацию интерфейса IComparable.
|
|
*
|
|
* @author Александр Бабаев
|
|
* @package php_components_pack
|
|
* @version 1.0
|
|
* @since 1.2
|
|
*/
|
|
trait GUIDComparableTrait
|
|
{
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function IsEqualsTo (mixed $other): bool
|
|
{
|
|
return $this->Value === $other->ToString();
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function CompareTo (mixed $other): int
|
|
{
|
|
// Сравниваем строковые значения GUID
|
|
$compareResult = strcmp($this->Value, $other->ToString());
|
|
|
|
// Возвращаем результат сравнения
|
|
// - если текущий GUID меньше, чем второй
|
|
if ($compareResult < 0)
|
|
// - возвращаем -1
|
|
return -1;
|
|
// - если текущий GUID больше, чем второй
|
|
else if ($compareResult > 0)
|
|
// - возвращаем 1
|
|
return 1;
|
|
else
|
|
// - иначе если GUID равны, то возвращаем 0
|
|
return 0;
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
#[Deprecated('Этот класс не имеет свойств. Данные методы не будут работать корректно. / This class has no properties. These methods will not work correctly.', '1.2')]
|
|
public function CompareByProperty (string $propertyName, mixed $other): int
|
|
{
|
|
// Этот класс не имеет свойств, поэтому возвращаем 0
|
|
return 0;
|
|
}
|
|
} |