MartinGrupinski Geschrieben 1. März 2018 Teilen Geschrieben 1. März 2018 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 1. März 2018 Teilen Geschrieben 1. März 2018 (bearbeitet) 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 1. März 2018 von Whiz-zarD Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinGrupinski Geschrieben 1. März 2018 Autor Teilen Geschrieben 1. März 2018 Sowohl in PHP ist mir das untergekommen, als auch in JavaScript.. Hier zB in php. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. März 2018 Teilen Geschrieben 1. März 2018 Bei PHP wundert mich ja gar nichts mehr. Konkret ist hier wohl das Problem, dass die Zend Engine nicht damit zurecht kommt, wenn man NULL als "By-Reference"-Argument übergibt. Bei JavaScript: Zeig mal ein Beispiel. Goulasz reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 1. März 2018 Teilen Geschrieben 1. März 2018 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 1. März 2018 Teilen Geschrieben 1. März 2018 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinGrupinski Geschrieben 1. März 2018 Autor Teilen Geschrieben 1. März 2018 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pr0gg3r Geschrieben 1. März 2018 Teilen Geschrieben 1. März 2018 (bearbeitet) 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 1. März 2018 von pr0gg3r MartinGrupinski reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinGrupinski Geschrieben 1. März 2018 Autor Teilen Geschrieben 1. März 2018 Das ist natürlich auch ein ganz guter Ansatz. Wär ich so auch nicht drauf gekommen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.