Re: [RFC] [Discussion] Improve callbacks in ext/dom and ext/xsl
| From: | Niels Dossche | Date: | Sat, 11 Nov 2023 16:49:10 +0000 |
| Subject: | Re: [RFC] [Discussion] Improve callbacks in ext/dom and ext/xsl | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-121656@lists.php.net to get a copy of this message | ||
Hi Tim
On 11/11/23 16:32, Tim Düsterhus wrote:
> Hi
>
> On 11/7/23 20:32, Niels Dossche wrote:
>> I'm opening the discussion for my RFC "Improve callbacks in ext/dom and
>> ext/xsl".
>> RFC link:
>> https://wiki.php.net/rfc/improve_callbacks_dom_and_xsl
>
> Some question that I believe are not answered:
>
> 1.
>
> $xpath->registerPhpFunctions([
> "foo" => ...
> ]);
>
> $xpath->registerPhpFunctions([
> "foo" => ...
> ]);
>
> Is this an error due to the duplicate definition or will the last 'foo' win?
The last 'foo' will win, such that you can override previous definitions.
>
> 2.
>
> $xpath->registerPhpFunctions([]);
>
> Is this an error or a noop?
>
This is a no-op, just like it is the case in current PHP versions.
> 3.
>
> Would it make sense to deprecate passing a string as "Future Scope"? Simplifying the
> method signature would also allow to simplify the documentation in the long run and registering a
> string is trivially fixed by adding square brackets.
Maybe, although I personally don't hate it that much.
>
> In fact looking at the existing documentation at
> https://www.php.net/manual/en/domxpath.registerphpfunctions.php,
> what's the difference between 'php:function()' and 'php:functionString()'?
The difference is in the returned result.
php:functionString() will case the result to a string automatically for you, while php:function()
just returns the result as-is.
>
> Best regards
> Tim Düsterhus
Kind regards
Niels