Hi, On Sat, Feb 25, 2012 at 14:21, Dmitri Snytkine <dsnytk...@ultralogistics.com> wrote: > I am not sure if this is a bug or not, but something is strange with this: > I run this little test script, this one is posted on php.net in comments > section > > > class MySimpleHeap extends SplMaxHeap > { > public function compare( $value1, $value2 ) { > return ( $value1 - $value2 ); > } > } > > $obj = new MySimpleHeap(); > $obj->insert( 4 ); > $obj->insert( 8 ); > $obj->insert( 1 ); > $obj->insert( 0 ); > > foreach( $obj as $number ) { > echo $number."\n"; > } > > The output is 8 4 1 0 > Good. > Now I change the > class MySimpleHeap extends SplMaxHeap > to > class MySimpleHeap extends SplMinHeap > > run it again (now I expet to get lowest value first) and get exact same > results back. > > Is this a bug?
No, this is not a bug. SplMin/MaxHeap simply define their own compare method, but you overwrite it anyway. If you specify the compare method, I don't believe it is useful to extends SplMin/MaxHeap if you overwrite the compare method completely, you should extend SplHeap directly in such cases. Best, > > > > Dmitri Snytkine > Web Developer > Ultra Logistics, Inc. > Phone: (888) 220-4640 x 2097 > Fax: (888) 795-6642 > E-Mail: dsnytk...@ultralogistics.com > Web: www.ultralogistics.com > > "A Top 100 Logistics I.T. Provider in 2011" > > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > -- Etienne Kneuss http://www.colder.ch -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php