RE: [PHP-DEV] Is this correct behaviour with SplMinHeap?

From: Date: Sat, 25 Feb 2012 14:08:40 +0000
Subject: RE: [PHP-DEV] Is this correct behaviour with SplMinHeap?
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-58066@lists.php.net to get a copy of this message
This makes sense. Thank you. Dmitri Snytkine Web Developer Ultra Logistics, Inc. Phone: (888) 220-4640 x 2097 Fax: (888) 795-6642 E-Mail: dsnytkine@ultralogistics.com Web: www.ultralogistics.com "A Top 100 Logistics I.T. Provider in 2011" -----Original Message----- From: ekneuss@gmail.com [mailto:ekneuss@gmail.com] On Behalf Of Etienne Kneuss Sent: Saturday, February 25, 2012 9:03 AM To: Dmitri Snytkine Cc: internals@lists.php.net Subject: Re: [PHP-DEV] Is this correct behaviour with SplMinHeap? Hi, On Sat, Feb 25, 2012 at 14:21, Dmitri Snytkine <dsnytkine@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: dsnytkine@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

« previous php.internals (#58066) next »