Archiv verlassen und diese Seite im Standarddesign anzeigen : 5.0.0 PHP Release führt zu Spaghetticode
PHP 5.0 bringt die allseits bekannte Funktion "goto", welche schon bei C++ und visual basic verwendet wird mit.
Findet ihr den Spaghetti-Code, à la goto sinnvoll oder eher kompletter quatsch?
Kann praktisch sein, wenn man zum Beispiel ne allgemeine Fehlermeldung hat, die öfters verwendet wird. Dann kann man schnell hinjumpen, andererseits kann man das auch mit Funktionen alles machen, also nicht unbedingt ne Verbesserung, eher ein nettes Gimmick, was vermutlich einfach zu implementieren war.
Im Endeffekt kann ja immernoch jeder selber entscheiden ob ers braucht und benutzt oder nicht...
wie v0id meinte ... mit funktionen gehts halt auch ... aber ich denk jetzt wirds interessant für batchscripter xD
-=Player=-
02.06.2009, 11:29
ich bin voll und ganz der meinung meiner vorposter, aber da es kein verschlechterung ist, sondern nur ein zusatz, ist es mir eigentlich egal :)
if $_GET['a']=="abc"{
for $i=0;$i<100;$i++{
if NOW()=="16.00"
echo "16 UHR";
else if (NOW()+27!=0 THEN
for $j=0;$j<$i;Sj++{
k=$j+$i;
for $l=500;$l>$j;$k--{
echo "lol";
}
if $k=27&$j=324&$i!=3454 THEN
goto ende;
}
...
:ende
für sowas isses praktisch
nur dass du dann wohl zu 100% nen fehler ausgegeben kriegst weil man aus ner schleife nicht einfach so mit goto herausspringen kann. das geht nur mit break
Sinnvoll, da es, wie Player schon sagte nur ein Zusatz und keine Norm ist.
Um aus einer Schleife rauszukommen gibt es dennoch nettere Wege :>.
Die Schleifenbedingung ungültig machen, false wiedergeben, per exit aussteigen...
Ich denke jedoch dennoch nicht, dass ich sowas nutzen werde. Ich finde stur nacheinander arbeitende Scripte besser, als welche, die einfach Code überspringen können.
visual basic verwendet wird
Keiner würde das in VB benutzen.
Ist völlig veraltet und führt zu komischen Ergebnissen.
-=Player=-
02.06.2009, 16:51
hab ich aber in vb auch des öffteren gesehen ... leider
immer rein mit den funktionen, keine ist gezwungen es zu verwenden.
und für kleine miniscripts kann man es ja mal nehmen :>
kInGoFcHaOs
02.06.2009, 18:40
Sirect (http://free-hack.com/member.php?u=44710)
ich habs schon in vb genutzt...^^
naja mir ist es egal ich werde goto nicht nutzen ^^
Ich werds bestimmt in den ein oder anderen PHP Bot von mir einbauen. Hab nen goto schon öfters gebraucht^^
Kann mir mal jemand bitte ein Beispiel zeigen, wo ein goto sinnvoll wäre?
Ich habe das irgendwie noch nie gebraucht und mir erscheint das auch irgendwo sinnlos, da Schleifen mehr Sicherheit und Übersichtlichkeit bieten.
cTPu1bjo
02.06.2009, 19:20
Goto's sind krebserregend.
Ich werde es nicht verwenden und finds auch ein bisschen sinnlos, dass man das jetzt einführt...
Warum soll man es nicht benutzen wenn man es geboten bekommt. Ich benutze zwar goto sehr selten aber manchmal ist es in VB nötig um Errors handlen zu können...
gotos kann man sehr leicht durch schleifen ersetzen, also bringen die kaum was. Info lehrer hat mich neulich angemeckert weil ich der einfachkeitshalber goto verwendet hatte in vb xD
in vb isses ganz praktisch für Errorhandling...
man muss es halt sinnvoll einsetzen
Private Function Ficken() As Boolean
Dim i As Long
Dim X As Variant
On Error GoTo ErrorMark
X = "Hallo Welt"
i = X ' fehler...
Ficken = True ' ihr werdet wohl nie Ficken^^
GoTo Leave: 'oder Exit Funciton/Sub
ErrorMark:
MsgBox Err.Description & vbNewLine & Err.Number 'o.Ä
Debug.Assert False ' man kann auch Strg+Pause klicken wärend man in der Ide die msgbox angezeigt bekommt, dann einmal F8 und dann springt man zu Resume..
Resume ' nur benutzen um die fehler auszubessern, man spring an die stelle wo der fehler auftritt, wenn man das programm so weitergibt und ein fehler auftaucht gibts ne 100%ige CPU auslastung... da es eine endlos schleife ist...
Leave:
' Man kann hier halt noch iwas machen, egal ob nen fehler aufgetaucht ist oder nicht, man springt hier immer rein..
End Function
2called-chaos
11.06.2009, 18:43
PHP 5.0 bringt die allseits bekannte Funktion "goto"
Ab PHP Version 5.3 (!!!)
nur dass du dann wohl zu 100% nen fehler ausgegeben kriegst weil man aus ner schleife nicht einfach so mit goto herausspringen kann. das geht nur mit break
Man darf nicht IN schleifen springen, heraus schon...
Naja es macht es nich unübersichtlicher als Funktionen (diese muss man ja genauso suchen wie goto's)...
Find ich persönlich nicht schlimm sofern man sie vernünftig einsetzt, eben nicht wie in Basic, und die PHP Dev's haben sich da auch viele Gedanken drüber gemacht (Irgendwo das Protokoll gelesen wo die sich getroffen haben)
Mfg
Chaos
Ich weiß gar nicht warum goto's so oft als die Ausgeburt des Bösen empfunden werden. Liegt wahrscheinlich zum Teil an so verkorksten Spezifikationen wie in pascal (wo goto's tatsächlich schrecklich sind). Aber heutzutage macht es in keinem Modernen Compliler von der Performance gesehen einen unterschied ob man nun ein goto oder ein if benutzt. Und wenn man durch das goto eine bessere lesbarkeit erreicht dann ist das meiner meinung nach durchaus gerechtferigt.
Ob das ganze jetzt viel performance in PHP-scripten ausmacht, die ja nicht kompiliert werden, kann ich nicht sagen. Aber ich nehme an das dass bei einer vernünfigen Implementation kein Problem darstellen sollte.
//edit: besser hätte ich es nicht sagen können: http://netevil.org/blog/2004/jul/goto-isnt-evil
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.