Re: [RFC] [DISCUSSION] Scalar Pseudo-type
| From: | Andreas Heigl | Date: | Tue, 26 Dec 2017 15:59:08 +0000 |
| Subject: | Re: [RFC] [DISCUSSION] Scalar Pseudo-type | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-101421@lists.php.net to get a copy of this message | ||
Hey All.
> Am 26.12.2017 um 14:38 schrieb Sebastian Bergmann <sebastian@php.net>:
>
>> Am 24.12.2017 um 15:34 schrieb Fleshgrinder:
>> I prepared a PR to add the
scalar pseudo-type to PHP after
>> the
>> discussions around adding a mixed pseudo-type. I strongly
>> believe that
>> it makes sense to provide the most common primitive union types with
>> handy aliases even if we are going to add union types in the future to PHP.
>
> Thank you, Richard, for working on this.
>
> I spent a lot of time this year introducing scalar type declarations into
> existing code bases. In quite a few cases I was not able to do so because
> the existing code works with parameters that can be of two or more scalar
> types. With PHP 7.2, I can only document this outside of the code using
> @param annotations (until the code has been refactored to work with only
> one parameter type).
>
> With a "scalar" type declaration I would not have to fall back to @param
> annotations and could express the type in actual syntax.
Just a stupid question from someone that isn't following all the discussions here. So forgive
me if the question was already asked and answered.
What would be wrong with a "composed type hint"? Something like int|float|double $numeric.
Or array|Traversable $iterator?
It would allow people to add "mixed" typehints without having to introduce multiple
typehints that combine different scalar typehints. And it could even allow typehinting different
Objects in one function.
Yes, it allows people to shoot themselfes into their own feet.
And I'd only allow that for parameter types and never ever for return types.
But it might be an idea.
Cheers
Andreas