Der Martin: Was bewirkt ein Dollarzeichen mit geschweifter Klammer um Array?

Beitrag lesen

Hallo,

Einrückungen und Umbrüche sind (außer bei Python und teilweise Javascript) ästhetischer Natur und syntaktisch bedeutungslos, für die Verständlichkeit jedoch von hohem Wert.

und das ist ein starkes Argument, dieses Mittel zu nutzen, auch wenn es nicht zwingend notwendig ist.

Optionale Zeichen haben keinen Einfluss auf das Ergebnis der Syntaxanalyse seitens des Parsers, sind also syntaktisch bedeutungslos. Ihr Wert für die Verständlichkeit des Codes ist meistens als gering einzuschätzen. Sie nur der Gewohnheit willen zu notieren, halte ich für keinen guten Grund.

Das sehe ich nicht so. Wenn ich mir angewöhne, eine Anweisung in PHP (Javascript, C) *immer* mit einem Semikolon abzuschließen, mach ich mir das Leben leichter, als wenn ich erst überlege, ob ich es an einer bestimmten Stelle nicht auch weglassen könnte.
Und nächste Woche erweitere ich mein Script, und das einst optionale Semikolon ist plötzlich nicht mehr optional.
Zugegeben, in dem Fall wird man durch einen Parse Error sofort darauf gestoßen - aber warum sollte ich erst den Grundstein für einen zukünftigen Fehler legen, den ich durch konsequentes Nicht-Ausnutzen eines Freiheitsgrades von vornherein vermeiden könnte?

Ein unüberlegtes ; zu viel kann sich hingegen länger versteckt halten.

if (bedingung);
  {
    anweisungen;
  }

Um sowas zu notieren, muss man aber schon in einem fortgeschrittenen Stadium geistiger Abwesenheit sein - dass ein sinnvolles if-Statement immer mindestens einen Anweisungsblock (oder eine einzelne Anweisung) enthält, ist wohl klar.
Deswegen empfehle ich ja auch nicht, aus Gewohnheit am Ende jeder Zeile ein Semikolon zu setzen, sondern am Ende jeder Anweisung.

Dies ist völlig korrekte Syntax.

Ja, der if-Zweig besteht aus einer leeren Anweisung.

Hier noch ein Beispiel, wo ich bewusst ein Komma setze:
  $foo = array(
    bar,
    qux,
    baz,
  );

Das ist aber sinngemäß dasselbe wie ein optionales Semikolon an einer Stelle, wo es nicht sein muss.
Es ist zwar praktisch, das so zu notieren, weil Smith & We..., äh, Copy & Paste damit problemlos wird. Aber es kann je nach Programmiersprache sinnverändernd sein - im Gegensatz zum unnötigen Semikolon.

Jedenfalls ist das Komma nach baz zwar syntaktisch nicht ganz korrekt, aber PHP stört sich nicht daran und erzeugt auch kein leeres Array-Element.

Klassische Sprachen wie etwa C/C++ schon, C# hast du selbst erwähnt.
Ich bin deswegen durchaus dafür, dass man sich durch konsequente Anwendung von Gewohnheiten das Leben leichter macht.

So long,
 Martin

--
Die Natur ist gnädig: Wer viel verspricht, dem schenkt sie zum Ausgleich ein schlechtes Gedächtnis.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(