« 1 2 »
Autor Zpráva
Casero
Profil
chtěl bych se zeptat...jak si ulehčit kodu, kde se stále opakují nějaké části....ale tak, že potřebují hodně proměných ze stránky a vrací víc jak jednu výslednou...jde to nějak funkcemi, než tam vypisovat milionkrát globals a pak vysledky házet do polí?...nebo jak se řeší tadle stupidní a dost potřebná věc v php...
djlj
Profil
function nejaka_fce ($promenna1, $promenna2, $promenna3, $promenna4) { //tady sem dáš hodně těch proměnných ;)
return $pole // pokud vím, tak více věcí lze vrátit jen polem
}
Možná to jde nějak objektama, ale ty zas tak dobře neumím, takže ti neporadím.
Casero
Profil
djlj
no práve sem chtěl nvědět nějakej jinej způsob než tento..jako něco prostě jako include...že by se jen vkládali časti odu pomocí include..ale příjde mi blbý mít 100 souorů...a ty vždycky podle potřeby includovat...:-D
nightfish
Profil
function nejaka_fce($parametr1, $parametr2, $parametr3, &$vysledek1, &$vysledek2, &$vysledek3) {
return;
}
co nepředávat proměnné hodnotou, nýbrž odkazem?
koudi
Profil
Taky se vnucuje otázka, jestli by to třeba nešlo napsat líp...protože hodně vstupů se dá ještě pochopit, ale hodně výstupů už je takový dost zvláštní...
Casero
Profil
no tak prostě jde o to, že mám kod ve kterým se podle nějakých podmínek stále opakuje tak 5 řádků kodu...n a když je tam těch 5 řádků kodu 20x a opakují se 20x tak mi to příjde zbytečný mít v jednom kodu.ale jak jinak to zkrátit..jako jen vkládat ty 5-ti řádkoví části....todle je muj problém..a myslle se nějak řes fce ale to je složitý, pač sou tam i vstupy/výstupy v hojnem počtu...a include nevím jestli se vyplatí mít tolik těch soboru
pavel prochazka.zde.cz
Profil *
co delas nejake perpetumobile? :) posli sem ten kod, kcemu mas prepinace nebo podminky, podle toho vyberes patricnou metodu zpracovani a je to....
Casero
Profil
pavel prochazka.zde.cz
tak ok...nebudu sem dávat celej kod..ale náčrtek

je nějaká podmínka která kod rozdělí do tří variant ...a každá z variant se zasre takto rozloží...no a toto rozdělení bud končí pěti řádky kodu, nebo pokračuje další dělení a to bud končí pěti řádky..atd...a prostě aby se těch 5 řádků furt neopakovalo v kodu..tak prostě jestli nejde definovat pět řádku a už tam jen vkládat něco, e se tam má vložit těch pět řádků
djlj
Profil
Casero
Pokud to dobře chápu, tak by stačilo jen stále dokola vyvolávat danou funkci.
Casero
Profil
djlj
hhe..no a sme na začátku..prostě že by v te funkci museo být to pole, a těch spousty vstupních hodnot...a jestli to nejde jinak...pač když by ten kod byl rozsahlejí a těch pět řádku by tam bylo v několika variantách, tak těch funkcí by bylo víc..a bylo y tom zse dost složitý
pavel prochazka.zde.cz
Profil *
Podobny algoritmus jsem delal kdyz jsem psal sluzbu pro prohledavani WinRegistru ve Visual basicu....
tam jsem napsal jednu funkci ktera volala sama sebe, tak dloho jak bylo potreba.... kod je velice rehledny ale poroz! Na zacikleni, je to poreba poradne odladit....
pavel prochazka.zde.cz
Profil *
Napise se funkce ktera je schopna obslouzit v jednom pruchodu vsechny mozne stavy a potom se zaridi pri prohod na druhou uroven aby se funkce sama sebe zavolala a je to problemech....
Casero
Profil
heh..no mě šlo hlavně o to jestli nejde nějak nezávazně opakovat část kodu..
pavel prochazka.zde.cz
Profil *
no vsak jsem ti to uz pisal.....


function ParseTextu($sPromena){

if (neco se nesplnilo pro druhy pruchod) return $sVysledek;

if (neco se splneno pro druhy pruchod){
ParseTextu($sPromena);
}

}
pavel prochazka.zde.cz
Profil *
uprava kodu:

function ParseTextu($sPromena){

.
.//kod pro zpracovani vstupnich dat
.
if (neco se nesplnilo pro druhy pruchod) return $sVysledek;

.
.//kod pro pripravu na druhy pruchod
.
if (neco se splneno pro druhy pruchod){
ParseTextu($sPromena);
}

.
.//kod pro zajisteni vysledku....A predani vysledku z predchozich LEVELU
.

return $sVysledek;
}
Casero
Profil
a neexistuje něco jako includinn opakovany_kod1() {dlouhy kod} a pak jen opakovany_kod1() s tím, že by se ta jen vložil ten kod...prostě takovej lehkej include
pavel prochazka.zde.cz
Profil *
nevim co porad mas s tema include souborama.... Takovy kod je silene neprehledny, pokud se jedna o par zadku... Neni lepsi mejt celou logiku pekne pohromade v jednom souboru? a dalsi verze, na disku mas nejaky clastry a kdyz soubor zabejra 500 bajtu a nebo 3x 120 bajtu, tak hadej ktery system je vice narocnej na diskovy prostor.... Ktery musis nedejboze jeste platit..... :)
Peca
Profil
hadej ktery system je vice narocnej na diskovy prostor :-))) Určitě bude mít milióny funkcí :-))
Casero To co potřebuješ, se řeší pomocí maker. Ty ale v php asi nenajdeš. Zkus se na ten kód podívat, jestli by nebylo lepší ho celý přepsat.
filip186
Profil
Casero
Není to zase ten tvůj výpočet čehosi (už nevím čeho)?
Casero
Profil
filip186
jj..přesně tak je to ono..a sm s eto snažil zjednodušit, ale oběvil sme, že je to v php nějak moc nemožný...prostě jen vkládat stejný kod víckrát do stránky, taková trivialita...
pavel prochazka.zde.cz
Profil *
nic neni nemozne....
dej sem ten tvuj kod a pridej i vstupni data a co z toho ma vylezt.....
mrknu se na to....
greld
Profil *
aaaaaaaaaaaaaa...... takový nechápavý lidi.....
Casero
Profil
greld
njn..asi to prostě nejd..jinak by to hned sem někdo napsal...
llook
Profil
Tak přinejhorším by se dalo použít eval():
$opakujici_se_kod = 'echo "Opakující se kód";';

...
eval($opakujici_se_kod);
...
eval($opakujici_se_kod);

Jenom pozor, aby nebylo nijak možné něco do té proměnné podstrčit zvenčí.
thingwath
Profil
Peca
V PHP to zase tak nutné není, různé šablony a makra jsou zejména k obcházení typového systému, to PHP nepotřebuje.
Casero
Profil
llook
moc dík, přesně to sem hledal...jen takový nezávazný požívání části kodu na různých místech...a je něco tomu podobnýho, nebo je to jediná fce svého druhu?
Retal
Profil
Jak to čtu, máš to špatně navržené. Ukaž konkrétní kód nebo nastiň konkrétní problém.
Casero
Profil
Retal
no prostě se na několika místech opakuje stejný část kodu a přišlo mi zbytečný to tam mít tolikrát v celém znění...ale už sem to vyřešil tím evalem...
Retal
Profil
Eval je v 95% špatné řešení a v tvém případě s 99,9% pravděpodobností.
thingwath
Profil
Retal
Eval je mnohdy velmi dobré řešení, problém je, že je to řešení trochu jiného druhu než jaké by dávalo smysl v Javě nebo C. Což mnoho lidí vede k závěru, že je to řešení špatné.
« 1 2 »
Toto téma je uzamčeno. Odpověď nelze zaslat.

0