PHP是一门弱语言,也就说PHP的一个变量可以保存任意类型的变量,PHP是用C语言实现的,而C语言是一个强类型的语言,每个变量都有固定的类型,不能随意改变变量的类型(虽然可以通过强制类型转换,可能会出问题).在zend引擎中的实现: 引用的是PHP 5的源码: 打开zend.h 会发现定义了如下的结构体: typedef struct _zval_struct zval; typedef union _zvalue_value { long lval; /* long value */…
<script> function show(){ var a=b=c=d=5; } show(); alert(a);//弹a时报错(not defined),而b.c.d都能弹出5 </script> 因为赋值是从右向左结合:var a=b=c=d=5; 等价于 var a=(b=(c=(d=5)));,其中只有a被声明了,b,c和d都是自动解析为全局变量了. <script> function show(){ var a=5,b=6,c=7; } show();…