PHPでは、非静的であるがインスタンス関数ではない関数をクラス内に持つことは可能ですか?
たとえば、次のような場合です。
class A
{
public $i;
function setValue($val) {
$this->i = $val;
}
}
$a1 = new A;
$a1->setValue(5);
echo $a1->i; // result: 5
$a2 = new A;
$a2->setValue(2);
echo $a2->i; // result: 2
そのクラスに、それ自体のすべてのインスタンスの「可視性」を持つことができる関数を追加して、そのようなことを実行できますか(これは機能しないことはわかっていますが、私の考えを伝えます):
class A
{
public $i;
function setValue($val) {
$this->i = $val;
}
function getTotal() {
return sum($this->i); // I know sum() isn't a built-in function, but it helps explain what I want. I'm not sure if $this makes sense here too.
}
}
$a1 = new A;
$a1->setValue(5);
echo $a1->i; // result: 5
$a2 = new A;
$a2->setValue(2);
echo $a2->i; // result: 2
echo A::getTotal(); // returns: 7
A::getTotal()
つまり、静的である必要があると思いgetTotal()
ますが、静的である場合、各クラスインスタンスを「見る」ことはできません。
この種のことは可能ですか、そして私が使用すべき正しい用語は何ですか?