Ich staunte, als ich heute den folgenden Code getestet:Wie genau erreicht PHP 'dynamische' Variablen?
$star = "Aquarius";
$star = 11;
Während des Debuggens ich beobachtet, dass $star
einfach aus string
Typ integer
Typ ändert. Ich war erstaunt über diese Funktionalität. In C++ zum Beispiel ist das einfach unmöglich, aber in C# habe ich die Variable var betrachtet, aber sie ist nicht die selbe.
Zum Beispiel können Sie nicht tun:
var dynamic = "Hello";
dynamic = 3;
Ich begann genau zu fragen, was an dem Punkt passiert, wenn ich im Grunde $ Stern = 11. Meine Vermutung sagen, dass $star
einfach neu initialisiert, da es zu sein ist direkt zugewiesen (dies erscheint jedoch seltsam, da der Interpreter bereits weiß, dass eine Variable $star
früher deklariert wurde). Kann jemand mit einigen klaren oder offiziellen quellengesicherten Erklärung helfen?
Danke.
Wow, großartig. Also bedeutet es, dass in C# eine Variable niemals wirklich als ein * generischer * Objekttyp gespeichert wird? Und ist es möglich, dass du Quellen zur Verfügung stellen kannst, in denen ich mehr lernen kann? Danke – rtuner
C# ist eine Sprache, um Byte-Code auszugeben, um auf einer VM zu laufen. Der 'generische Objekttyp', auf den ich im PHP-Beispiel Bezug nahm, ist nichts anderes als eine 'C-Sprachstruktur' mit 2 Mitgliedern (ich vereinfache das ein wenig, indem ich das sage). Mehr Quellen sind schwierig, da Sie Konzepte aus 3 verschiedenen Sprachen kombinieren (eine für Assemblercode, eine für Bytecode und eine für interpretierte Ausführung). –