Udało mi się uzyskać efekt taki jaki chciałem, trochę na okrętkę ale działa
class TEST {
public function __get($name) {
$name = '_'.$name;
if (!isset($this->$name) && function_exists
($this->$name())) $this->$name ();
return $this->{$name};
}
private $_zmianna2;
private function _zmianna2(){
$this->_zmianna2 = $this->zmianna1.'zmianna2';
}
private $_zmianna1;
private function _zmianna1(){
$this->_zmianna1 = 'zmianna1 ';
}
}
W linii 12 na siłę wywołuję metodę __get(), gdyż jeżeli dam
$this->_zmianna1 to nie zadziała

Sposób zainspirowany dzięki
wookieb - tylko w drugą stronę

Może uda się zrobić to jakoś inaczej, jeżeli tak to proszę o podpowiedź.
@Crozin
1) Przykład z życia, a dokładniej z matematyki bo ten który tworzę na prawdę jest trochę specyficzny i nie nadaje się na przykład.
Konstruktor inicjuje dwa pola obiektu var1 i var2 jakimiś cyframi.
var3 ma przechowywać sumę tych dwóch cyfr która zostaje obliczona przez funkcję var3()
natomiast var4 przechowuje takie działanie (var1+var2)*var1 oczywiście też obliczany przez funkcję var4()
dlatego chce by funkcja var4() zrobiła coś takiego var3*var1
2) Nie potrafię odpowiedzieć na to pytanie wszystko może wyjść w praniu na tą chwilę mam 2 "zagnieżdżenia"
3)Czy stosując tablicę miałbym jakiś inny plus poza tym że wszystko miałbym w jednym miejscu?