为 类 定义数学运算符

Defining mathematical operator for classes

PHP 对象是否可以(数学)运算符重载,就像 Python 一样?我认为答案是否定的,因为我搜索了很多却一无所获。只是想确认一下。

我已经为(向量)点定义了 类,我希望它们像数字(它们对应的坐标)一样相加,并且像标量积一样是基本运算。目前我定义如下

public function multiply($x){
    $this->X -= $x*$this->X;
    $this->Y -= $x*$this->Y;
}

public function divide($x){
    if (abs($x) < 10^-6){
        die("Scalar is less than 10e-6.");
    }
    $this->X = $this->X/$x;
    $this->Y = $this->Y/$x;
}

public function dot($point){
    return (sqrt($this->X*$point->X + $this->Y*$point->Y));
}

对于当前的工具,我是这样做的$vec1->add($vec2)。我宁愿这样 $vec3 = $vec1 + $vec2.

我不认为它在核心中,但有一个名为 Operator 的包可以为您完成。它可用 here