Gå til innhold

Endelig! PHP får "goto"!


Anbefalte innlegg

Folkene ansvarlig for PHP har endelig tatt til vettet og legger til GOTO i versjon 5.3

 

http://www.usit.uio.no/saus/blogg/goto_php.html

http://www.php.net/manual/en/control-structures.goto.php

 

(Hvorfor virker ikke tre utropstegn når de står etter hverandre i overskriften? Det blir automatisk til kun ett, men det virker om jeg bruker mellomrom mellom hvert tegn).

Endret av S_J
Lenke til kommentar
Videoannonse
Annonse

Er egentlig ikke spesielt happy for dette.

Godt mulig det finnes settinger hvor goto sårt trengs, men min kodestil heller heldigvis ikke i den retning :-)

 

Er forøvrig imponert over at labels lages på en fornuftig måte, istendenfor at de defineres med særtegn som eksempelvis §. (ref namespaces)

Lenke til kommentar

Hadde det ikke vært for at det er i slutten av juli så hadde jeg trodd at dette var en aprilspøk.

 

Ja dette var virkelig en god nyhet. Nå blir det mye lettere å skrive grisete spaghetti-kode. Det kommer nok MYE godt ut av dette, ja.

 

Werner

Lenke til kommentar

Jeg skjønner den ikke helt, er funksjonen at hvis jeg skriver noe kode, la oss si 100 linjer, så skriver jeg videre og skjønner at jeg ikke har bruk for dem 100 linjene med kode, så går jeg i toppen av scriptet skriver "goto a;", åsså begynner den på alt det jeg skriver under "a:" ? er det ikke bare bedre og slette de 100 linjene med kode? - så er man liksom kvitt dem, 4ever.. :p

Lenke til kommentar

Er ikke det man bruke goto-statmens til nei. Men ja; det er slik de fungerer.

 

Si istendenfor normale løkker og rekursjonskall, kan man nå styre flyten med goto-statements. Men en løkke er uendelig mye mer lesbar, siden den typisk omsluttes av klammer og er indentert. Også slipper man å bli overrasket over variabler som kun er tilgjengelig i scopet, etc..

 

Nei, goto-statements er ikke ønskelig at brukes. Et helvete å lese kodeflyten. Men i en del mer lavnivå språk benyttes goto flittig, da gjerne pga mangel på bedre alternativer. Så goto har (hadde) sine bruksområder.

Lenke til kommentar
Men en løkke er uendelig mye mer lesbar, siden den typisk omsluttes av klammer og er indentert.

Ja helt enig,og vedlikehold av kode med goto blir vel bare tull.

Nå er er PHP et OOP språk,så man kan lage ren kode som er fin og vedlikeholde.

Selvfølgelig er det ikke bruk for goto når man koder i OOP.

 

At goto ikke er populært er ikke noe nytt.

I 1968 skrev Edsger W.Dijkstra,dette dokumentet mot go to statement.

http://www.cs.utexas.edu/~EWD/transcriptio...2xx/EWD215.html

Endret av SNIPPSAT
Lenke til kommentar

goto er ingen god ting, blir mest brukt av folk som aldri skulle hatt lov å tatt i ei datamaskin.

 

Så det med å implementere denne funksjonen i PHP nedgraderer ein språket endå meir enn kva all grisekoden som finnes i PHP allereie har gjort.

Lenke til kommentar

Hurra, enda en mulighet for amatører innenfor programmering til å lage helt forjævlig kode! :)

 

Eneste fordelen jeg ser med goto er at man kan porte bat scripts til php, uten at jeg helt ser hvorfor.

Endret av Ueland
Lenke til kommentar

Heh ... da var det bare å vente på en massiv flodbølge med spagettikode :no: Nå er riktignok ikke goto bare sorg og elendighet, det kan brukes for å enkelt komme seg ut (aka. nedover i koden) av en komplisert loop (type ørten while inni hverandre), men jeg frykter det blir mest brukt til å hoppe oppover i koden, noe som er direkte grusomt.

Lenke til kommentar
Oppover? - går det ann? :p

 

altså:

 

a:
echo "foo";

goto a;
echo "bar";

 

Vil output her være foo?

Ja, oppover er mulig, det er jo derfor så mange hater goto intenst (nedover er mer akseptabelt i den grad man kan snakke om det i forhold til goto :p). Den koden du har der vil forøvrig effektivt være en uendelig loop som skriver ut foo.

Lenke til kommentar
Oppover? - går det ann? :p

 

altså:

 

a:
echo "foo";

goto a;
echo "bar";

 

Vil output her være foo?

 

Output vil vel heeller være

foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoo....<no more memory available>

Lenke til kommentar

Nei, det er ikke å «bare ikke bruke det». Med denne muligheten vil kvaliteten på koden man finner på nettet reduseres med femten hakk, nettopp fordi sånne som deg synes goto er kjempe kjekt. At dette introduseres påvirker altså alle, enten man liker det eller ei.

Lenke til kommentar

Det største problemet med kode er at det lever vidare etter den originale koderen har slutta.

 

Så tankegangen "det er jo berre eg som skal gjere dette" er den værste tanken ein kan ha som programmerer, for i 99,9% av tilfellene så vil koden overleve programmeren, iform av at andre tar over koden.

 

Så lager du eit system med goto i, og selger dette vil det garantert bli fiksa på /utvida av andre.

Då har du faktisk tatt valget for dei med å bruke goto.

 

Som ein del andre har sagt tidlegare, GoTo blir brukt der ein ikkje har muligheitane til å bruke meir egna strukturer.

 

Hadde eg funne goto i noko kode eg har ansvar for, så ville det blir temmeleg månelyst om programmerene ikkje kunne overbevise meg om kvifor goto var den beste løysninga for det aktuelle problemet.

 

 

S_J du definerer GOTO som eit ekstra verktøy i verktøykassa.

 

GOTO kan heller beskrives som forgjengaren til hammeren, så kva du skal med ein stein/ pinne når du har 5-10 utmerka stålhammere i forskjellige størrelser lurer eg veldig på kvar pinnen gjer ein bedre jobb på å stålspiker enn kva den korrekt dimensjonerte hammaren gjer.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...