On Tue, 11 Feb 2020 at 14:19, Nikita Popov <nikita....@gmail.com> wrote:
>
> On Tue, Feb 11, 2020 at 1:43 PM Manuel Canga <manuelca...@gmail.com> wrote:
>>
>> On Tue, 11 Feb 2020 at 13:16, Nicolas Grekas
>> <nicolas.grekas+...@gmail.com> wrote:
>> >
>> >
>> >
>> > Le mar. 11 févr. 2020 à 12:52, Diogo Galvao <diog...@gmail.com> a écrit :
>> >>
>> >> On Tue, Feb 11, 2020 at 8:14 AM Manuel Canga <manuelca...@gmail.com> 
>> >> wrote:
>> >> >
>> >> > Hi internals,
>> >> > I Would like to present a possible new "::func resolution" for your
>> >> > consideration.
>> >> ...
>> >> > use function \My\I18N\i18n_translate;
>> >> >
>> >> > $mapped_array = array_map(i18n_translate::func, $array);
>> >> ...
>> >> > What is your opinion ? Do you see it useful ?
>> >>
>> >> I've wished for this on many occasions and think it'd be really useful, 
>> >> as long
>> >> as it could work with methods as well:
>> >>
>> >> $mapped_array = array_map(I18N::translate::function, $array);
>> >>
>> >> For what it's worth I guess it could just return [I18N::class, 
>> >> 'translate'].
>> >
>> >
>> > I wish this would return a Closure instead, making $foo::function the 
>> > equivalent of Closure::fromCallable($foo).
>>
>> Hi, Nicolas,
>>
>> Currently, when <class_name>::class is used, class with <class_name>
>> can or cannot exists in that moment.
>> Using <function_name>::func( or <function_name>::function ), I think
>> should keep the same behavior.
>>
>> Using ::func as alias of "Closure::fromCallable" check if function
>> exists in that moment. It is certainly useful, but, I think it's more
>> important be consistent
>
>
> Checking whether the function exists is really unavoidable for functions, 
> because you don't know whether
>
> namespace Foo;
> var_dump(strlen::function);
>
> refers to 'Foo\strlen' or 'strlen', without first trying to look up the 
> former.
>
> I agree with Nicolas that this kind of feature would provide the most value 
> if it created a Closure. This would circumvent all the issues outlined in 
> https://wiki.php.net/rfc/consistent_callables.
>
> Regards,
> Nikita

Thanks, Nikita. I don't know that RFC.

In that case, why don't use ::callable ?. This will be useful for
functions and others callable. E.g:

enqueue_task([I18n::class, 'translate']::callable);
enqueue_task(translate::callable);

Would it be hard to implement in PHP ?

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

Reply via email to