In some other languages the mixed type is called "variant".
https://en.m.wikipedia.org/wiki/Variant_type
I mostly remember it from VisualBasic.

Lynn <kja...@gmail.com> schrieb am Mi., 4. Sep. 2019, 09:22:

> Hi,
>
> Would this warrant a having mixed types? By making every variable of type
> "mixed" when no type is defined, regardless of what value it receives or is
> initialized with, this would make an opt-in system. This behavior would
> cater developers who prefer only strict types, only dynamic types, and
> those that want to type their code bit by bit without putting declares that
> affect whole files.
>
> ```
> $foo = 'foo';
> // same as
> mixed $oneHundred = 100;
> // difference being:
> // $foo is accepted when 'string' is typed in the signature
> // $oneHundred is accepted when 'int' is typed in the signature
>
> // no longer mixed, only accepts their defined type as value
> // and is accepted only as their defined type in signatures
> string $foo = 'foo';
> int $oneHundred = 100;
>
> // does imply we might need custom type definitions in the future to not
> have to work with mixed
> typedef Stringable = string | MyToStringInterface;
> Stringable $foo = (bool) rand(0, 1) ? 'foo' : new
> MyStringableObject('foo');
> ```
>
> Note that this behavior would require making some decisions whether or not
> in the future this opt-in behavior should change when a default value is
> given, such as with C# and type inference when declaring a variable, based
> on its assigned value.
>
> Regards,
> Lynn van der Berg
>
> On Wed, Sep 4, 2019 at 8:12 AM Michał Brzuchalski <
> michal.brzuchal...@gmail.com> wrote:
>
> > śr., 4 wrz 2019, 05:52 użytkownik Fwentish Aelondes <fwent...@gmail.com>
> > napisał:
> >
> > > Hello internals,
> > >
> > > Zeev's idea to bring peace to the galaxy seems like a good idea, but
> > > impossible to implement in practice.
> > >
> > > But it got me thinking about how one might introduce static typing
> > > into a dynamically typed language w/out breaking BC.
> > >
> > > And then I had this crazy idea:
> > >
> > > //int
> > > $i = 0;
> > >
> > > //string
> > > $c = 'c';
> > >
> > > //float
> > > $pi = 3.14;
> > >
> > > If static typing in php was *only* an opt-in kind-of-thing, would this
> > > work? Could the parser be built to identify 3 or 4 different keywords
> > > in comments and give warnings or fatal errors for type conversions of
> > > variables that have the type specified in the immediately preceding
> > > comment?
> > >
> > > Just a (crazy) idea.
> > >
> > > ---- Fwentish
> >
> >
> > IMO it's crazy idea and we should not change the way comments work
> > especially inline comments which even aren't kept in opcache.
> >
> > I think better approach would be to put type in front of first variable
> > declaration like:
> >
> > [type] $variable = $value;
> >
> >
> > BR,
> > --
> > Michał Brzuchalski
> >
>

Reply via email to