我有一个具有多个数值和功能的类 (对于某种计数类别等)。
class mBasicClass
{
public $typ01Value = 0;
public $typ02Value = 0;
}
我还有一些其他类,实际上是这些类的组合
class mClass
{
public $vjA = new mBasicClass();
public $ntB = new mBasicClass();
public $ntC = new mBasicClass();
public $ntD = new mBasicClass();
}
所有我想知道的 - 有没有办法在php类中编写像.net这样的操作符覆盖
以便我可以使用
$vjA + $ntB
实际上是
$vjA->$typ01Value + $ntB ->$typ01Value
$vjA->$typ02Value + $ntB ->$typ02Value
答案 0 :(得分:4)
自2001年以来,PHP对象操作符重载请求一直是一个开放票证:
https://bugs.php.net/bug.php?id=9331
所以不幸的是你不能做你所要求的:(
相反,你必须创建一个像addObjects($obj1, $obj2)
这样的函数,并自己进行手动计算:
addObjects($obj1, $obj2)
{
$new_obj = new mBasicClass();
$new_obj->typ01Value = $obj1->typ01Value + $obj2->typ01Value;
$new_obj->typ02Value = $obj1->typ02Value + $obj2->typ02Value;
return $new_obj;
}
然后使用它:
$result = addOjbects($vjA, $ntB);