浮点转换 *= PHP 中的方程

float casting *= equations in php

提问人:Patrick Teng 提问时间:9/1/2022 更新时间:9/1/2022 访问量:33

问:

目前使用 PHP 8.1,每当我执行诸如 String * Float 之类的公式时,我都会遇到致命错误。好的,所以我只需通过浮铸来修复它,它就解决了。

但我注意到另一个问题是,当我们使用 *= 和 += 等符号时,浮动转换不起作用

请参考以下示例

$a = "";
$b = "2";
//first way
(float) $a *= (float) $b; //fatal error, unsupported operand String * float
//second way
$a = (float) $a * (float) $b; //works

我假设第一个子句的结果是

(float) $a = $a * (float) $b;

这会导致错误。

无论如何都有解决这个问题的方法,还是必须始终以第二种方式完成?假设我无法控制什么是$a(我不能提前漂浮投射它)。

谢谢

PHP 强制转换 运算符

评论

1赞 qrsngky 9/1/2022
第一种方式显然被解释为 .从技术上讲,它确实有价值,这是可能的。相反,将其解释为 例如 是没有意义的,因为虽然你可以赋值给 ,但你不能赋值给 ;它不是一个变量。(float) ($a *= (float) $b); $something_else = (float) ($a *= (float) $b);( (float) $a) = $something$a((float) $a)
0赞 Rohit Gupta 9/1/2022
如果变量是数字,为什么要将变量定义为字符串?将它们定义为 $a=0;*$b=2;
0赞 Patrick Teng 9/1/2022
@RohitGupta这只是一个测试用例。正如我在最后一句话中所说,假设我无法控制$a,我怎么能在不走第二种方式的情况下解决这个问题。

答: 暂无答案