gpt4 book ai didi

php - 为什么我不能在 PHP 中将对象转换为 float ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:43 25 4
gpt4 key购买 nike

我正在用 PHP 创建一个对象(我们称它为 Decimal),它包装了 bcmath 功能并添加了一些新功能。

大部分实际工作发生在静态函数中,例如 add(...)divide(...)。唯一的实例方法是访问器方法(为不变性万岁!)和 __toString() 魔法方法。

__toString 适用于大多数情况,但有一个奇怪的例子,我希望我的类型转换为 float/double/real。我可以使用实例方法或通过执行 (float)(string) 转换来完成此操作,但似乎合乎逻辑的是应该有类似的魔术方法来执行此操作,例如 __toFloat。不幸的是,它似乎没有。我找不到任何与此相关的文档。我尝试将其作为 __toFloat__toDouble,希望它可能只是一个未记录的功能,但无济于事。

如果 floatval() 自动尝试将其参数转换为字符串,我什至会很高兴,但事实并非如此。它抛出一个 Notice: Object of class Decimal could not be converted to double 错误。

是否有更好的方法或解决方法?

最佳答案

通常,toString() 方法返回一个对象的字符串表示形式以使其适合显示 - 考虑调试、错误消息等。

要返回一个对象的值,您可以简单地创建一个getValue() 方法。

我还建议不要使用静态方法。试试这个:

$numberOne = new Number(5);
$numberTwo = new Number(10);

$numberOne->add($numberTwo);

$sum = $numberOne->getValue();// 15

关于php - 为什么我不能在 PHP 中将对象转换为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com