当前位置:Gxlcms > PHP教程 > php变量原理,php变量_PHP教程

php变量原理,php变量_PHP教程

时间:2021-07-01 10:21:17 帮助过:6人阅读

php 变量原理,php变量


1.php作为一种弱类型语言,不需要显式的指明变量的类型,但是php变量也是有类型的,php变量包含以下8种变量(三大类)

  a.标量类型:boolean,integer,float(double),string

  b.复合类型:array,object

  c.特殊类型:resource,null

2.php使用c语言实现变量的原理

  a.变量存储结构    

  1. typedef struct _zval_struct zval;
  2. ...
  3. struct _zval_struct {
  4. /* Variable information */
  5. zvalue_value value; /*存储变量的值,是一个union类型*/
  6. zend_uint refcount__gc;/*变量的引用计数,默认为1*/
  7. zend_uchar type; /*变量的类型,为IS_NULL、IS_BOOL、IS_LONG、IS_DOUBLE、IS_STRING、IS_ARRAY、IS_OBJECT和IS_RESOURCE之一*/
  8. zend_uchar is_ref__gc;/*表示是否为引用*/
  9. };

  b.存储变量值得zvalue_value如下

  1. typedef union _zvalue_value {
  2. long lval; /* long value */
  3. double dval; /* double value */
  4. struct {
  5. char *val;
  6. int len;
  7. } str;
  8. HashTable *ht; /* hash table value */
  9. zend_object_value obj;
  10. } zvalue_value;

这里使用union而不是struct是为了节省内存空间,以为一个变量同一时间只能表示一种类型

参考资料:tipi开源项目http://www.php-internals.com/book/?p=chapt03/03-01-00-variables-structure

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1111693.htmlTechArticlephp 变量原理,php变量 1.php作为一种弱类型语言,不需要显式的指明变量的类型,但是php变量也是有类型的,php变量包含以下8种变量(三大...

人气教程排行