On Wed, Mar 18, 2015 at 2:02 PM, Nikita Nefedov <inefe...@gmail.com> wrote:
> On 18 Mar 2015 15:52, "Pavel Kouřil" <pajou...@gmail.com> wrote:
>>
>> Hello,
>>
>> I made that conclusion because in the first example, the library kinda
>> forces strict mode rules on the caller, even if he doesn't want to use
>> strict mode - this makes the interoperability of the two modes
>> problematic.
>
> This is incorrect, library force itself to use right types, not you. I don't
> see any problems here. The only thing that for sure lacks in PHP and that
> would make STH better is callable signature types.
>

Well, it forces you to do that, basically. And also forces you to
"care" about the mode of library, adding mental overhead. Look more
closesly at the first example - does the error in that case make sense
to you (from purely user's point of view)? When you call
a(function(int $b) {return $b * 2; }) - should you really be required
to check the context within the a() is declared?

>> Also, the other possible outcome of the scenario (respecting the mode
>> of the place where the callback is declared), is IMHO problematic as
>> well, because it does not respect the strict mode of the place where
>> it is called, making it inconsistent with how the dual mode RFC works
>> in general.
>
> It doesn't matter where the callback or function was declared, it only
> matters where it was called. It pretty much is consistent.

This was just a comment about how it would be (also) wrong to solve it
the other way around.

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to