PHP SplHeap

Code
<?php

class MyHeap extends SplHeap
{
    
/**
     * @see http://www.php.net/manual/en/splheap.compare.php
     */
    
protected function compare($val1$val2)
    {
        return 
strlen((string) $val1) -
            
strlen((string) $val2);
    }
}

$heap = new MyHeap();
$heap->insert('----');
$heap->insert('---');
$heap->insert('-');
$heap->insert('--');

echo 
'elements in heap: ' count($heap) . PHP_EOL;

foreach(
$heap as $val) {
    echo 
$val PHP_EOL;
}

echo 
'elements in heap: ' count($heap);
Result
elements in heap: 4
----
---
--
-
elements in heap: 0
Used Versions
PHP 8.2, Laminas MVC 3.2, Symfony 5.2, Laravel 8.28, PHPUnit 9.5, Doctrine ORM 2.8