I would like to place a suggestion for comparing objects (I hope it is no 
problem, because this does not have anything to do with Sara's question - but 
it came to my mind when I read her mail). It would be a great feature if 
objects could be compared to other objects with ">", "<" and the other 
operators, like it is suggested in RFC https://wiki.php.net/rfc/comparable
The DateTime class offers this feature - it would be nice if this could be made 
usable for userland classes/objects, too.

Best regards

Christian Stoller


-----Original Message-----
From: p...@golemon.com [mailto:p...@golemon.com] On Behalf Of Sara Golemon
Sent: Friday, November 09, 2012 1:07 AM
To: PHP internals
Subject: [PHP-DEV] Object comparison

From: http://php.net/manual/en/language.operators.comparison.php

An object compared to anything which is not a bool, null, or object
should result in the object appearing to be greater than the other
operand.  For example:

$a = new stdClass();
$b = new stdClass();

var_dump(null < $a);
var_dump(false < $a);
var_dump(true == $a);
var_dump($a == $b);
var_dump(0 < $a);
var_dump(1 < $a); // false
var_dump(2 < $a); // false
var_dump("foo" < $a);
var_dump("2" < $a);
var_dump(tmpfile() < $a);

Based on docs, I expect all nine of these to yield true, however in
practice, the two marked "false" come out as false because the RHS
object is converted to an integer (1), contrary to the docs.

Doc bug? Or code bug?  I'm inclined to call it a code bug, but wanted
others' thoughts.

-Sara

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to