mi è stato meravigliarono quando ho provato il seguente codice di oggi:In che modo esattamente PHP raggiunge le variabili "dinamiche"?
$star = "Aquarius";
$star = 11;
Durante il debug, ho osservato che $star
cambia semplicemente dal tipo string
a integer
tipo. Sono rimasto stupito da questa funzionalità. Ad esempio in C++, questo è semplicemente impossibile, ma in C# ho considerato la variabile var ma non è la stessa cosa.
Per esempio non si può fare:
var dynamic = "Hello";
dynamic = 3;
ho cominciato a chiedermi che cosa succede esattamente nel momento in cui ho praticamente dico $ stella = 11. La mia ipotesi è che $star
è semplicemente reinizializzato dal momento che è di essere direttamente assegnato a (ma questo sembra strano poiché l'interprete sa già che una variabile $star
è stata dichiarata in precedenza). Qualcuno può aiutare con alcune chiare o spiegazione ufficiale supportato da fonte?
Grazie.
Wow, grande. Quindi vuol dire che in C# una variabile non viene mai realmente memorizzata come un tipo * generico * di oggetto ?? Ed è possibile che tu possa fornire qualsiasi fonte in cui posso imparare di più? grazie – rtuner
C# è una lingua per l'output di codice byte da eseguire su una VM. Il "tipo di oggetto generico" a cui mi riferivo nell'esempio di PHP non è altro che una 'struct' in linguaggio C con 2 membri (semplifica un po 'la cosa dicendo questo). Più fonti sono difficili poiché si combinano concetti di 3 diversi tipi di linguaggi (uno per codice assembly, uno per byte-code e uno per interpretazione interpretata). –