| 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: 15 let
|
|||
0