Autor | Zpráva | ||
---|---|---|---|
Metr Profil * |
#1 · Zasláno: 16. 5. 2007, 07:32:51
mám jednu takovou otázku jak vytvořit třeba v oop
$class->hledat('hledany_vyraz')->seradit('ASC')->vypsat(); abych nemusel třeba dělat $class->hledat('hledany_vyraz'); $class->seradit('ASC'); $class->vypsat(); díky |
||
Mastodont Profil |
#2 · Zasláno: 16. 5. 2007, 07:38:31
Ty metody (function) musí vracet $this.
|
||
MzM Profil |
#3 · Zasláno: 16. 5. 2007, 08:05:25
Metr, operátor "->" se aplikuje na objekt a zpřístupňuje tak metodu nebo vlastnost tohoto objektu.
když vezmu tvůj příklad, tak hledat() by muselo vracet objekt, seradit() by muselo vracet objekt a pak by to šlo takto zapsat. Jinak se to v 99,9% případů dělá tak, jak to píšeš na ty tři řádky. |
||
Mastodont Profil |
#4 · Zasláno: 16. 5. 2007, 08:25:09
|
||
error414- Profil * |
#5 · Zasláno: 16. 5. 2007, 08:26:52
|
||
MzM Profil |
#6 · Zasláno: 16. 5. 2007, 08:48:33
jinými slovy totéž....
|
||
error414- Profil * |
#7 · Zasláno: 16. 5. 2007, 09:40:10
MzM jj je to to tez ja te chtel jenom doplnit. Jinak ja take redeji nastavuji na tri radky.
|
||
MzM Profil |
#8 · Zasláno: 16. 5. 2007, 10:45:08
OK, teď to zkouším, a nějak mi to nechodí. Pokud přes fci vrátím $this, tak další reference se zuřivě brání. Pro dokreslení:
tohle nefunguje (Parse error: parse error, unexpected T_OBJECT_OPERATOR na tomhle řádku) $obj->jmeno('toto')->a(); toto funguje (stejný objekt $obj.) $x = $obj->jmeno('toto'); $x->a(); kde dělám chybu? |
||
error414- Profil * |
#9 · Zasláno: 16. 5. 2007, 12:25:48
MzM
$obj->jmeno('toto')->a();funguje jen v php5. V php4 nedovolene pouziti "->" za ")"; |
||
MzM Profil |
#10 · Zasláno: 16. 5. 2007, 12:34:03 · Upravil/a: MzM
Aha, já jsem si myslel, že v tom bude nějaký vyšší zádrhel, díky.
|
||
Metr Profil * |
#11 · Zasláno: 17. 5. 2007, 09:46:11
díky všem,
chci se ještě zeptat, není to zbytečné nechat si vracet celé $this? nebude to moc náročné na paměť? nebo si jen předávat referenci by bylo lepší? |
||
llook Profil |
#12 · Zasláno: 17. 5. 2007, 13:12:41
Náročné na paměť to nebude, v PHP5 se objekty předávají podobně jako reference.
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0