Zum Inhalt springen

Wieso "var null = NULL;"


Empfohlene Beiträge

Hallo zusammen,

bisher habe ich keinerlei befriedigende Antwort darauf gefunden, wieso ich immer wieder über die Codezeile stolpere:

var null = NULL;

Wieso sollte man so etwas tun? Hat das irgendeinen verborgenen Sinn oder ist das nur darauf zurückzuführen, dass man gern alles, was man häufiger benutzt in Variablen verpackt? Oder spart man sich durch die Zeile lediglich den Druck auf die Shift-Taste?

Vielen Dank schonmal,

Martin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Welche Sprache?

Edit:
So ein Konstrukt kenne ich nur, wenn man einen definierten Wert für "leer" haben möchte. Angenommen, du programmierst ein Schachspiel und ein leeres Feld auf dem Brett soll einen definierten Wert haben. Damit alle leeren Felder den selben definierten Wert haben, legt man so einen Wert fest da du aber weder die Sprache mitgeteilt hast, noch der Kontext, wo diese Variable verwendet wird, ist das nur reine Spekulation.

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Minute schrieb Klotzkopp:

Konkret ist hier wohl das Problem, dass die Zend Engine nicht damit zurecht kommt, wenn man NULL als "By-Reference"-Argument übergibt.

Das hab ich auch grad gefunden, großartige Sache. Zum Glück ist es dokumentiert, da käme sonst keiner drauf :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Macht für mich auf dem ersten Blick keinen Sinn. Wohl eher eine interne Geschichte, wie @Klotzkopp schon schreibt. PHP und JavaScript sind ja Sprachen, die gerade von Anfängern sehr beliebt ist und da werden gerne mal Sachen kopiert, ohne zu wissen, was das eigentlich soll. So ein Konstrukt ist höchstens auch nur bei dynamisch typisierten Sprachen möglich. In typisierten Sprachen, wie z.B. C# oder Java ist sowas nicht möglich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich finds jetzt leider nicht mehr, wo ich bei JS drübergestolpert bin, kann aber gut sein, dass das, wie Whiz erwähnt hat, bei JS nur einmalig von nem Anfänger ohne Sinn übernommen wurde. Falls ichs nochmal finden sollte, werd ichs auf jeden Fall nochmal posten. Aber dass es da tatsächlich ne Begründung für PHP gibt, find ich grade wirklich faszinierend. Ich muss mir den Code vom Zend mal anschauen. Ich kanns mir grade nicht erklären, wie man programmieren müsste, damit es solch eine Einschränkung gibt.

Aber vielen Dank schonmal für eure Zeit, die Frage beschäftigte mich jetzt schon ein paar Tage ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb MartinGrupinski:

Sowohl in PHP ist mir das untergekommen, als auch in JavaScript.. Hier zB in php.

Wirklich Sinn macht das nicht. Der Entwickler sagt, dass die Variable $null den Wert NULL hat und setzt dann überall $null statt NULL ein. Meiner Meinung nach ist das nicht wirklich nötig, da sich der Wert von $null ja niemals ändert (außer man möchte irgendwann mal 0 oder void oder was auch immer verwenden, dann ist die Bezeichnung der Variable $null aber nicht richtig). Vielleicht möchte er damit darauf hinweisen, dass die Parameter mit Absicht NULL sind oder er hat mit anderen Werten herumgespielt (und die Variable dann einfach so genannt). Aber dann würde ich ein Kommentar bevorzugen.

Viel schöner, sauberer und lesbarer wäre etwas wie folgt:

$socket_write = NULL;
$socket_except = NULL;

...

socket_select($changed, $socket_write, $socket_except, 0, 10);

/Edit: Die Parameter "write" und "except" von socket_select erwarten jeweils einen Array mit Sockets. ich kann mir sehr gut vorstellen, dass er zum Testen des Codes irgenwann mal statt die Werte NULL tatsächlich Arrays mit Sockets verwendet hat. Aber im "finalen" Script ist das anscheinend nicht mehr nötig und es reicht NULL aus, also es müssen keine Sockets über blockierte Schreibvorgänge und Ausnahmebehandlungen überwacht werden. Also hat er die Variable einfach umbenannt und/oder auf NULL gesetzt.

Bearbeitet von pr0gg3r
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...