SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::compareCompara elementos para colocá-los corretamente no heap enquanto faz o ajuste ascendente

Descrição

protected function SplHeap::compare(mixed $value1, mixed $value2): int

Compara value1 com value2.

Aviso

Lançar exceções em SplHeap::compare() pode corromper o Heap e colocá-lo em um estado bloqueado. Você pode desbloqueá-lo chamando SplHeap::recoverFromCorruption(). No entanto, alguns elementos podem não ser colocados corretamente e, portanto, podem quebrar a propriedade do heap.

Parâmetros

value1

O valor do primeiro nó sendo comparado.

value2

O valor do segundo nó sendo comparado.

Valor Retornado

Resultado da comparação, inteiro positivo se value1 for maior que value2, 0 se forem iguais, inteiro negativo caso contrário.

Nota:

Ter múltiplos elementos com o mesmo valor em um Heap não é recomendado. Eles acabarão em uma posição relativa arbitrária.

adicionar nota

Notas de Usuários 1 note

up
0
ohcc at 163 dot com
2 days ago
This method is abstract, and in PHP 8.0+ its parameters are of type `mixed`, you can not change their types to types other than `mixed` when `extends`ing SplHeap.

The following example emits an error saying "Fatal error: Declaration of WuXianchengHeap::compare(string $one, string $two): int must be compatible with SplHeap::compare(mixed $value1, mixed $value2)".

<?php
    class WuXianchengHeap extends SplHeap{
        public function __construct(Iterator $iterator){
            foreach($iterator as $item){
                $this->insert($item);
            }
        }
        public function compare(string $one, string $two):int{
            return -1 * strNatCaseCmp($one, $two);
        }
    }
?>