Robert Cummings a écrit :

Please explain how it can take up more than twice.

  It is obvious for a C developper.

== 8< == Zend/zend.h
typedef struct _zval_struct zval;

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;

typedef struct _zend_object {
        zend_class_entry *ce;
        HashTable *properties;
        HashTable *guards; /* protects from __get/__set ... recursion */
} zend_object;

struct _zval_struct {
        /* Variable information */
        zvalue_value value;             /* value */
        zend_uint refcount__gc;
        zend_uchar type;        /* active type */
        zend_uchar is_ref__gc;
};

== 8< ==

  When you write
$a = 1 ;

The $a variable don't contain only the integer, it contains a lot of more stuff. This stuff is needed by the fact that a variable can contain every types available in PHP.

So, I let you calculate the memory needed to store the variable, but you can easily understand that they'll not be twice the previous memory footprint, but a little more.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to