Autor | Zpráva | ||
---|---|---|---|
objektor Profil * |
#1 · Zasláno: 14. 7. 2010, 15:22:31
Je nějaký způsob jak předat nějaké parametry z funkce "vyber" funkci "z" v následujícím příkladu?:
$obj->vyber("hodnotu")->z("pole"); Napadá mě akorát to, že funkce "vyber" uloží parametr "hodnotu" do nějaké privátní proměnné objektu, odkud to bude brát funkce "z", ale to je takové krkolomné. |
||
ShiraNai7 Profil |
#2 · Zasláno: 14. 7. 2010, 15:56:57
Mě přijde krkolomné spíš tohle skládání objektů. Kód má sice být přehledný, ale zase ne na úkor programové efektivnosti.
|
||
objektor Profil * |
#3 · Zasláno: 14. 7. 2010, 16:16:16
Jasně. Tohle je jen příklad, takovéhle skládání objektů používám u složitějších věcí.
|
||
Step Profil |
#4 · Zasláno: 14. 7. 2010, 19:54:12
Jedině si to v tý třídě nastavit:
function vyber(...) { $this->parametr = ...; ... } Nic jinýho mě nenapadá |
||
Lamicz Profil |
#5 · Zasláno: 15. 7. 2010, 03:02:36
nevím, jestli to chápu, ale tohle je typický příklad řetězení - fluent, tzn. metody vrací instanci dotyčné třídy:
class x { private $co, $odkud; public function vyber($co){ $this->co = $co; return $this; } public function z($odkud){ $this->odkud = $odkud; return $this; } } $o = new x; $o->vyber('hodnotu')->z('pole'); Když neznám název metody, můžu to takto udělat i s __call() - BTW to je nejjednodušší příklad jak udělat tímto způsobem DB knihovnu. Metody jsou názvy sloupců a hodnota je hodnota sloupce (při UPDATE nebo INSERT). |
||
Časová prodleva: 14 let
|
0