Re: [RFC] [Discussion] Add bcdivmod to BCMath
| From: | Tim Düsterhus | Date: | Fri, 05 Jul 2024 20:39:15 +0000 |
| Subject: | Re: [RFC] [Discussion] Add bcdivmod to BCMath | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-124236@lists.php.net to get a copy of this message | ||
Hi
On 6/30/24 18:08, Rob Landers wrote:
We can argue the semantics of input/output, but the point still stands that return by reference is still more common than structured array, and even then, those are usually much bigger things.Happy to argue with you. I explained for each of the examples you mentioned how it differs from the use-case solved by
bcdivmod().
To give some examples of functions that return a structured array and that I believe to be reasonably similar (meaning: they destruct/parse the input value instead of just providing some metadata like opcache_get_status()):
- pathinfo()
- date_parse()
- getimagesize()
- openssl_x509_parse()
- password_get_info()
And for functions that return system information:
- opcache_get_status()
- sys_getloadavg()
- stat()
Please explain how their output arrays being “much bigger” makes a difference to how the API is perceived by the user that wants to use it.
Functions I see where the result is returned by out parameters only, without having a regular primary return value are (this also includes some closely related functions in openssl and socket that I do not list explicitly):
- getmxrr()
- openssl_csr_export()
- socket_getpeername()
And for all of those it would arguably a better API to just return the value and throw an Exception on failure.
Best regards
Tim Düsterhus