Edit report at http://bugs.php.net/bug.php?id=52528&edit=1

 ID:                 52528
 Comment by:         jackohman at eugama dot com
 Reported by:        giorgio dot liscio at email dot it
 Summary:            request for interface hashCode (Identifiable)
 Status:             Open
 Type:               Bug
 Package:            Class/Object related
 Operating System:   irr
 PHP Version:        Irrelevant
 Block user comment: N

 New Comment:

would be really nice having the possibility to use different output
strings, one for readability, one for unique identify an object



class ArrayObject implements Identifiable

{

      function hashCode(){return spl_object_hash($this);}

      function __toString(){return json_encode($this);}

}



$obj = new ArrayObject();

$myarr[$obj] = (String)$obj;



very nice, i'm voting it


Previous Comments:
------------------------------------------------------------------------
[2010-08-03 23:05:24] giorgio dot liscio at email dot it

Description:
------------
i, i hope to see something like this in future php releases





interface Identifiable

{

     public function /*string*/ hashCode();

}





class Test implements Identifiable

{

     public function hashCode(){return spl_object_hash($this);}

}





method hashCode() should be called in these contexts:





$myarr[new Test()] = "test";

$myarrobj->{new Test()} = "test";

and manually inside:

function method(Identifiable $instance){};





the hash should be obtained by calling



$obj->hashCode()     if it is Identifiable or

$obj->scalarValue()  if it implements ScalarAccess

$obj->__toString()   if it has method __toString



or, finally throw an error



what do you think about this?

thank you





------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=52528&edit=1

Reply via email to