On Thu May 27 11:22 AM, David Soria Parra wrote:
> On 2010-05-27, Zeev Suraski <[email protected]> wrote:
> +1 from me for this. I think two solutions is not the right way and we
> +should
> try to make the type system consistent for the user. Therefore +1 for
> auto-converting.
I still feel the debate of the "right way" is still open, say I have the
following class:
class Tax {
/**
* Apply a tax rate or {...@link getRatesApply() tax rates} to a given
amount and get the total tax.
*
* @param string|float $amount
* @param string|float|array $rates Tax rate or an array of tax
rates
* @param int $precision Rounding precision
*
* @return string
*/
static function apply($amount, $rates, $precision = 2) {}
}
Strict typing would allow:
static function apply($amount, $rates, int $precision = 2) {}
Type hinting would allow:
static function apply(string $amount, $rates, int $precision = 2) {}
This is far from consistent to the user, the syntax is identical to *strict
typing* in many (if not all) dynamic programming languages.
I would much prefer to see a 'type hint' where magical conversion happens
as:
static function apply((string) $amount, $rates, (int) $precision = 2) {}
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php