Maison  >  Article  >  développement back-end  >  为什么php里的变量不需要特意声明?

为什么php里的变量不需要特意声明?

WBOY
WBOYoriginal
2016-10-11 14:23:471448parcourir

问题如题,php里不需要声明变量,那系统知道什么是变量并且给变量分配空间是根据$来分辨的吗?它不需要声明变量是因为php是弱类型语言吗?

回复内容:

问题如题,php里不需要声明变量,那系统知道什么是变量并且给变量分配空间是根据$来分辨的吗?它不需要声明变量是因为php是弱类型语言吗?

php的底层C是由一个联合体union来存储变量,这个联合体里面有各种变量类型,php都以long类型来存储整型,用hashtable哈西表来存储数组,因为union可以存储各种变量,并且解释器会自动判定变量类型,所以php不用声明变量类型,弱类型

是的,因为php是弱类型语言,所以不需要声明变量类型即可使用。。

$只是个语法糖,表示后面跟的是一个变量。。

如果按照内存空间分配来解释的话

  • 弱类型的变量在分配内存空间时,这个内存空间可以存储任何类型的变量。使用的时候需要查找所有的内存区域

  • 而强类型则按照变量类型分配在指定的内存中,不可直接转换类型。使用的时候直接去该类型的区域中找到该值。

所以一般在弱类型语言中改变变量类型可以直接修改。。但是强类型语言不能直接修改,所以强类型语言的指针概念特别重要,我们不直接使用内存中的数据,我们创建一个引用型变量(指针),如果想修改的时候直接修改指针指向的内存地址就可以。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn