Heim > Backend-Entwicklung > PHP-Tutorial > php 变量原理,php变量_PHP教程

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

WBOY
Freigeben: 2016-07-12 08:56:38
Original
726 Leute haben es durchsucht

php 变量原理,php变量

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

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

  b.复合类型:array,object

  c.特殊类型:resource,null

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

  a.变量存储结构    

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

  b.存储变量值得zvalue_value如下

typedef union _zvalue_value {
    long lval;                  /* long value */
    double dval;                /* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;              /* hash table value */
    zend_object_value obj;
} zvalue_value;
Nach dem Login kopieren

 这里使用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种变量(三大...
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage