Re: Object Type Casting Reloaded
| From: | Stephen Reay | Date: | Tue, 23 Apr 2019 00:43:13 +0000 |
| Subject: | Re: Object Type Casting Reloaded | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-105338@lists.php.net to get a copy of this message | ||
> On 23 Apr 2019, at 06:30, azjezz <azjezz@protonmail.com> wrote:
>
> Hello Ben.
>
> yes, i have made a gist with a simple example to show the
as
> operator usage in hack + HHVM ( 4.1.0 ) output.
>
> see :
> https://gist.github.com/azjezz/03955ff2b009f1ced22ce68c9a862847
>
> Sent with [ProtonMail](https://protonmail.com) Secure Email.
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>> On Monday, April 22, 2019 11:50 PM, Benjamin Morel <benjamin.morel@gmail.com> wrote:
>>
>> Hi Azjezz, thanks for jumping in!
>>
>>> I have been using HackLang for quite a while now and i believe they have a better
>>> solution for this, and it would awesome to see it in PHP, the as
>>> operator.
>>
>> If I understand correctly, as is an operator that performs
>> type checks but never casts like () does.
>> This looks like a serious candidate for an alternative syntax to the one I proposed!
>>
>> - Ben
I like the idea but I find the syntax (both suggestions) less than great, given that there’s
already “ensure a type” syntax, and both suggestions are already used for other things (casting
and foreach)
Is there some reason (eg ambiguities) a type can’t just be placed before a variable to ensure a
type, similar to a function parameter or typed property?
Eg
string $foo = 'bar';
array $bar = getBar();
foreach($bar as int $k => string $v) {...}
Cheers
Stephen