Re: [RFC]

From: Date: Tue, 11 Feb 2020 14:48:18 +0000
Subject: Re: [RFC]
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-108483@lists.php.net to get a copy of this message
On Tue, 11 Feb 2020 at 14:19, Nikita Popov <nikita.ppv@gmail.com> wrote: > > On Tue, Feb 11, 2020 at 1:43 PM Manuel Canga <manuelcanga@gmail.com> wrote: >> >> On Tue, 11 Feb 2020 at 13:16, Nicolas Grekas >> <nicolas.grekas+php@gmail.com> wrote: >> > >> > >> > >> > Le mar. 11 févr. 2020 à 12:52, Diogo Galvao <diogo86@gmail.com> a écrit : >> >> >> >> On Tue, Feb 11, 2020 at 8:14 AM Manuel Canga <manuelcanga@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 ?

« previous php.internals (#108483) next »