phpbar.de logo

Mailinglisten-Archive

[php] goto statements

[php] goto statements

Johannes Schlueter schlueter at phpbar.de
Sam Jul 31 14:04:02 CEST 2004


On Saturday 31 July 2004 10:14, Thomas Richter wrote:
> ich weiss nicht, in wiefern jemand hier die internals mailingliste von
> php.net verfolgt... dort laufen seit gestern abend eine interessante
> diskussion bzgl. goto statements...
>
> was haltet ihr davon? sinnvoll, oder schwachsinn... ?

Nachdem Du die Liste verfolgst wirst Du ja wohl die Argumente kennen:

  - Goto ist sehr schön für's Error-Handling (so wird es in C auch immer mal 
wieder, auch in "modernen" Sachen, eingesetzt), PHP5 hat zwar Exceptions, mit 
denen sich das gleiche Ergebnis erzielen lässt, abergerade wenn man ein 
Skript als kurzes Werkzeug hinschreibt (Shell-Script-like) finde ich sowas 
äußerst praktisch und "do { ... } while(0)" dafür zu missbrauchen ist ja wohl 
ein Witz.
  - Goto ist praktisch, wenn man automatisch Code generiert.
  - Goto kann dazu führen, dass ein unerfahrener Anwender Spaghetti-Code 
erzeugt, da bin ich der Meinung, dass es schon genügend andere Wege gibt 
unwartbaren Code zu schreiben - in anderen Sprachen (C, C++, Pascal, Basic, 
Python, Perl, ...) funktioniert es ja auch mit goto.

Das einzige Problem mit PHP ist, dass die Einstiegskurve zu flach ist, ein 
"<b>Heute ist der <?=date('d.M.Y');?>!</b>" ist einfach zu schnell 
hingeschrieben und schon ist man "PHP-Profi". Ein Goto, das nur innerhalb des 
aktuellen Scopes (also der aktuellen Funktion/Methode bzw. im globalen 
Bereich) hin und her springt macht auch keinen besonderen Schaden mehr.

Ich selbst hätte es mal gebraucht, habe mich abgefunden, dass PHP es nicht 
hat, hätte jetzt nichts dagegen wenn es kommt, aber hier wird es nicht 
entschieden sondern auf der internals-Liste.

Wer sich für den Patch interessiert und sein eigenes PHP entsprechend patchen 
will kann mal auf http://www.pecl.org vorbei schauen, allerdings hat der 
Patch noch ein paar Probleme (z.B. verhinderter er nicht, das man in Blöcke 
hineinspringt, was dann aber nicht umbedingt zuverlässig läuft, etc.)

johannes
-- 
Johannes Schlüter
php::bar | Der Treffpunkt für Einsteiger und Profis   http://www.phpbar.de

php::bar PHP Wiki   -   Listenarchive