SplHeap::compare

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

SplHeap::compareCompara elementos con el fin de colocarlos correctamente en el montón en la parte de arriba

Descripción

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

Comparar value1 con value2.

Advertencia

Lanza una excepción en SplHeap::compare() que puede dañar el montón y colocarlo en un estado bloqueado. Se puede desbloquear llamando a SplHeap::recoverFromCorruption(). Sin embargo, algunos elementos podrían no ser colocados correctamente y por lo tanto pueden romper la propiedad del montón.

Parámetros

value1

El valor de el primer nodo a ser comparado.

value2

El valor de el segundo nodo a ser comparado.

Valores devueltos

El resultado de la comparación, integer positivo si value1 es mayor que value2, 0 si son iguales, en caso contrario integer negativo.

Nota:

No es recomendado tener múltiples elementos con el mismo valor en el montón. Estos terminarán con una posición arbitraria relativa.

add a note

User Contributed Notes 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);
        }
    }
?>