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.3, Laminas MVC 3.2, Symfony 5.2, Laravel 8.28, PHPUnit 9.5, Doctrine ORM 2.8