当我今天测试了以下代码我惊奇:PHP如何实现“动态”变量?
$star = "Aquarius";
$star = 11;
调试时,我观察到$star
简单地改变从string
类型integer
类型。我对这个功能感到惊讶。以C++为例,这是不可能的,但在c#中我认为var变量,但它不一样。
举例来说,你不能做的:
var dynamic = "Hello";
dynamic = 3;
我开始怀疑到底发生了什么在点的时候我基本上说$星级= 11。我的猜测是,$star
仅仅是重新初始化,因为它是直接为(但这看起来很奇怪,因为解释者已经知道变量$star
已经被提前声明)。任何人都可以帮助一些明确或官方源支持解释?
谢谢。
哇,太好了。那么这是否意味着在C#中变量永远不会真正存储为* generic * object类型?是否有可能提供任何资源,我可以学到更多?谢谢 – rtuner
C#是输出字节码以在VM上运行的语言。我在PHP例子中提到的'通用对象类型'只不过是一个包含2个成员的'C语言结构体'(我通过这样说简化了一些问题)。由于您将三种不同语言(一种用于汇编代码,一种用于字节码,一种用于解释执行)的概念组合起来,所以更多的源代码很困难。 –