Re: Add a static initialization method to `BcMath\Number`
| From: | Gina P. Banyard | Date: | Mon, 25 May 2026 09:07:20 +0000 |
| Subject: | Re: Add a static initialization method to `BcMath\Number` | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-131008@lists.php.net to get a copy of this message | ||
On Saturday, 23 May 2026 at 14:53, Saki Takamachi <saki@sakiot.com> wrote:
> Hi internals!
>
> In this issue, a suggestion was made that it would be convenient if
>
BcMath\Number could be initialized in a callable-style form (i.e.
> initialized via a static method):
> https://github.com/php/php-src/issues/22128
>
> Indeed, as pointed out in the issue, similar static methods exist in classes such as
> DateTime.
>
> I am in favor of introducing such a static method. It would probably look something like this:
>
> ```
> // $scale is optional
> $num = BcMath\Number::createFrom($val, $scale);
> ```
>
> It would effectively serve as an alias for the constructor.
>
> Incidentally, since this does not introduce any BC break, I do not believe an RFC is necessary.
>
> I would like to hear everyone’s thoughts on this.
I'm against this.
We should instead find a solution to allow FCCs/PFAs to work on constructors and new rather than
adding static factories for every possible class in existence.
I restarted work on a PR to clean up the semantics of constructors that, I believe, would make it
feasible to allow FCCs/PFAs on new MyClass. [1]
Best regards,
Gina P. Banyard
[1] https://github.com/php/php-src/pull/19797