Req #49957 [Com]: Need magic method for every data type

From: Date: Sat, 06 Nov 2010 23:05:58 +0000
Subject: Req #49957 [Com]: Need magic method for every data type
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-155814@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=49957&edit=1

 ID:                 49957
 Comment by:         bob_the_builder at gmail dot com
 Reported by:        greg at imagiclab dot com
 Summary:            Need magic method for every data type
 Status:             Bogus
 Type:               Feature/Change Request
 Package:            Feature/Change Request
 Operating System:   unix
 PHP Version:        5.3.0
 Block user comment: N

 New Comment:

@johannes

the problems you are mentioning are not new to OO languages. The same
problem might arise in C++ for example when 2 valid implicit cast exist.
This would simply raise an error. The programmer has to ability to
specify casts as explicit, so they will be invoked only if it is
explicity requested. Therefore he can only provide a single impicit cast
to prevent such an error. The same scheme could be applied in php. If
more than one implicit cast is found an E_USER error could be raised.


Previous Comments:
------------------------------------------------------------------------
[2009-10-23 15:39:34] greg at imagiclab dot com

Ok i see you point but other are not as complex like

__toResource would be create for connect on demand db classes


you can also only have the magic methods for float and int called if you

are specifically cast like (int)$Object

------------------------------------------------------------------------
[2009-10-23 10:24:21] johannes@php.net

This was discussed and leads to too many unclear situations. Like should
 $a + $b call toFloat or toInt or what? What about $a < $b? Maybe a
string comparison.

In the end implementing this gives more trouble than where it helps.

------------------------------------------------------------------------
[2009-10-22 15:23:46] greg at imagiclab dot com

Description:
------------
Need magic method for every data type.

Why have a incomplete magic method list. Why not a __toInt and 
__toResource.

We are trying to change a legacy system to connect to mysql on demand 
and would love a __toResource magic method.  

Also anyone who uses class based enums would like a __toInt to convert 
the enum to is int valyue and to use __toSting to convert the enum to 
its label.

Reproduce code:
---------------
---
From manual page: language.oop5.magic
---




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



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


Thread (4 messages)

« previous php.bugs (#155814) next »