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

 ID:                 46128
 Comment by:         shabazzk at gmail dot com
 Reported by:        131 dot php at cloudyks dot org
 Summary:            Magic function __cast($to)
 Status:             Open
 Type:               Feature/Change Request
 Package:            Feature/Change Request
 Operating System:   Linux
 PHP Version:        5.2.6
 Block user comment: N
 Private report:     N

 New Comment:

I think we're preaching to the choir at this point. I don't think its a high 
priority to anyone who is actually developing PHP. If we want this feature, 
then 
we should take it upon ourselves to implement and we should all support it 
getting 
in to a release version.

I'm sure once this is in there then that is when the masses will wonder how 
they 
ever did without it.


Previous Comments:
------------------------------------------------------------------------
[2013-05-03 19:10:07] mkutschker-php at yahoo dot com

While __toXxx() may more in line with the existing __toString() IMHO __cast() 
is more in line with the other magic functions and gettype(). If I could choose 
I'd take __cast() and deprectate __toString().

------------------------------------------------------------------------
[2012-11-09 16:00:11] shabazzk at gmail dot com

My suggestion is to replace `__cast($to)` with `__toObject($object)` (or even 
`__toSelf($object)`). That way, we have a magic method for each type to cast 
to, 
and we avoid the messy switch/if statements.

------------------------------------------------------------------------
[2012-09-05 21:01:02] maciej dot sz at gmail dot com

I think we all need this badly. It just suits the direction in which the 5.4 is 
going.

Regarding same functionality I think it is worth nothing that the conversion to 
boolean should be implicit. Otherwise such code could not work:

<?php
function check($response) {
  if ( ! $response ) die('error');
}

$resp = new Response();
check($resp->isSuccessful());
check($resp); // this would fail without the cast if the conversion was explicit
?>

------------------------------------------------------------------------
[2012-09-04 14:18:13] qfox at ya dot ru

WHEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEN?!!
There was 3 years to patch sources!

------------------------------------------------------------------------
[2011-01-20 22:54:12] neoegm at hotmail dot com

This would be very useful in order to be able to define a specific evaluation 
method for an object as a boolean, to, for example, simplify if-switches, so 
you can just do:

if ($obj)
{
        //...
}

Here an example of a class which toggles its own value each time it's evaluated 
as a boolean:

class ToggleObj
{
        var $val = FALSE;

        function __toBool()
        {
                $ret = $this->val;
                $this->val = !$ret;
                return $ret;
        }
}

$obj = new ToggleObj;

if ($obj)
{
        //Does not enter
}

if ($obj)
{
        //Now it does
}


Or going further, to make even table rows highlighted:

foreach ($rows as $row)
{
?>
        <tr class="<?=$obj?"":"highlighted"?>">
                <td><?=$row?></td>
        </tr>
<?php
}

Thanks.

NeoEGM
http://www.neoegm.com/

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=46128


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

Reply via email to