public static function compareTag(?string $a, ?string $b): int
    {
        if (null === $a) {
            return null === $b ? 0 : -1;
        }
        return null === $b ? 1 : strcmp($a, $b);
    }
public static function compareTag(?string $a, ?string $b): int
    {
        if (null === $a) {
            return null === $b ? 0 : -1;
        }
        return null === $b ? 1 : strcmp($a, $b);
    }
public static function compareTag ( ? string $ a , ? string $ b ) : int { if ( null === $ a ) { return null === $ b ? 0 : - 1 ; } return null === $ b ? 1 : strcmp ( $ a , $ b ) ; }
Compares two tags

Two tags are equals if both are the same string or both are `null`.
When only one tag is null, it is less then other.
When both tags are string, string comparison is used.
@param string|null $a One tag to compare
@param string|null $b Another tag to compare
@return int Negative integer when tag `$a` is less then tag `$b`,
positive integer when tag `$a` is great then tag `$b`
and zero when tags are equal.
@since 1.3.0
Compares two tags