2

複数の数値と機能を備えた1つのクラスがあります(ある種のカウントカテゴリなど)

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
4

1 に答える 1

4

PHPオブジェクト演算子のオーバーロードの要求は、2001年以来オープンチケットです。

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);
于 2012-12-22T12:52:11.963 に答える