Hi!
> Please be kind to review and comment my proposal for custom casting in PHP
> (or let me know if a similar proposal was already discussed).
>
> http://pastebin.com/sPb0i8U6
I think there's an issue with this idea. As far as I understand, what is
proposed is kind of cast-constructor paradigm. However, the result of
(ClassName)$var would be expected to be an object of type ClassName.
That is, however, not what cast() returns - it returns integer $var.
Since there's no way for foo(ClassName $var) to know where $var came
from, the result of $var = (ClassName)$var; is just a simple integer and
foo() would reject it since it's not an object of type ClassName.
Of course, you could just create this instead:
class PositiveInteger {
private $i;
function __construct($i) {
if(intval($i) < 1) $i = 1;
$this->i = $i;
}
function intval() {
return $this->i;
}
}
function foo(PositiveInteger $i) { return 2*sqrt($i->intval()); }
and then:
foo(new PositiveInteger(42));
But this is doable right now, even if sounds a bit of overkill for me. I
wouldn't mind also having (int)$i done with some magic methods, as
proposed in RFCs you mentioned.
--
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php