Could you elaborate on that a little?  I.e. "as an interface for the
call".  I'm not sure what you mean by that.  If you could provide a quick
example, that would be awesome!  =)

--Kris


2012/2/24 Ángel González <keis...@gmail.com>

> On 24/02/12 00:36, Kris Craig wrote:
> > Hmm that's a fascinating idea!  So, and please correct me if I'm
> > wrong, you're saying that it might be a better approach to determine
> > strict vs. dynamic typing on a per file or function basis instead of
> > on a per stack basis?  In other words, blah.php could contain two
> > functions, one using strict typing and the other using traditional
> > dynamic typing?
> Yes. Two functions in the same file with different conventions may be a
> strange use case, I'd expect differences to come from eg. using two
> libraries, each with different typing.
>
>
> > Theoretically, I think that approach could work.  Perhaps we'd have it
> > specified in the function declaration itself; i.e. "function whatever(
> > $text, $number )" would be a traditional, dynamically-typed PHP
> > function, whereas "strict function whatever( string $text, int $number
> > )" would use strict typing.
> I'm not keen with that syntax, but that could be discussed. I remember
> something similar was already mentioned in another types thread, with
> ideasl like string! or string? to mark the types as strict or weak.
>
>
> > The obvious question then would be, what if dynamic function A makes a
> > call to dynamic function B, passing to it a dynamically-typed
> > variable?  There are three viable approaches that come to mind:  This
> > count not be allowed; this could be allowed but only if the variables
> > being passed to function B are cast first (i.e. B( (string) $text,
> > (int) $number );); or, this could be allowed without casting, in which
> > case PHP would attempt to pass the variable and then throw an
> > exception if it cannot be parsed as the required type.  Personally, my
> > vote would be for Option 2.
> I was envisioning it just as an interface for the call. Thus, if funtion
> A used strict or dynamic types would be irrelevant. You seem to be
> bringing up another option however, which is that funcion A could
> specify the behavior on functions it calls.
> It can look appealing, but I don't think that's desirable. After all,
> it's the callee interface what is important, not the kind of caller (you
> could have a setting to force an stricter behavior, but that seems more
> appropiate for an extension, like xdebug scream option).
>
>

Reply via email to