infoo1
28.07.2009, 13:04:02
1. Jak zrobić klasę w klasie (czyli $c1->c2->func())? Robię przez utworzenie w c1 zmiennej c2=new c2();. Jest jaki¶ poprawniejszy sposób?
2. Jak odwołać się z funkcji func (w klasie c2) do func2 w klasie c3 ($c1->c3->func2())? Robię to przez global $c1; i wtedy $c1->c3->func2(). Jest jaki¶ poprawniejszy sposób?
skowron-line
28.07.2009, 13:06:31
Chodzi tobie o dziedziczenie
Można również przekazać obiekt klasy jako parametr konstruktora.
Fifi209
28.07.2009, 13:11:48
Napisz jako¶ dokładniej co chcesz zrobić (najlepiej na przykładzie).
Z tego co wyczytałem, to albo jak napisał kolega jako parametr w konstruktorze albo wykorzystać wzorzec singleton.
viking
28.07.2009, 13:16:16
<?php
class x {
$private $_t;
public function getCos(){
return $this->_t; //singleton czy co¶ tam; t = new y
}
}
$x->getCos()->test();
?>
O to chodzi?
infoo1
28.07.2009, 13:19:00
Chodzi o to, czy to jest poprawne:
<?php
class c1
{
public function __construct()
{
$this->c2 = new c2();
$this->c3 = new c3();
return true;
}
}
class c2
{
public function func()
{
return;
}
}
class c3
{
public function func()
{
$c1->c2->func();
return;
}
}
$c1 = new c1();
$c1->c3->func();
?>
blooregard
28.07.2009, 13:33:49
U mnie zadziałało, ale szczerze powiedziawszy, tak sie nie robi, bo masz sieczkę w kodzie po jakim¶ czasie.
Tak jak napisali Koledzy wcze¶niej: albo dziedziczenie, albo składow± klasy robisz obiekt innej i przy jego pomocy odwołujesz się do jego metod.