2 回答
TA贡献1942条经验 获得超3个赞
在我完成我的回答之前,已经发布了带有解决方案的评论,但使用__invoke()是您可以获得的最接近的:
<?php
class Foo
{
/**
* @var float
*/
private $factor;
public function __construct(float $factor)
{
$this->factor = $factor;
}
public function __invoke()
{
return $this->factor;
}
}
$foo = new Foo(1.23);
$boo = 2;
$result = $foo() * $boo;
//wanted output 2.46
echo $result;
TA贡献1820条经验 获得超2个赞
我想出的另一个解决方法是:
<?php
class Foo
{
/**
* @var float
*/
private $factor;
public function __construct(float $factor)
{
$this->factor = $factor;
}
public function __toString()
{
return (string) $this->factor;
}
}
$foo = new Foo(1.23);
$boo = 2;
$result = (string) $foo * $boo;
//wanted output 2.46
echo $result;
echo " ";
//double
echo gettype($result);
使用起来看起来非常不直观,但会产生想要的结果。
- 2 回答
- 0 关注
- 272 浏览
添加回答
举报