A unidade de armazenamento de dados no PHP designa-se por zval, trata-se de uma estrutura simples de 4 membros que está definida no ficheiro zend.h.
typedef struct _zval_struct { zvalue_value
value; zend_uint refcount; zend_uchar
type; zend_uchar is_ref;
} zval;
Tipos de dados utilizados por Zend:
IS_NULL -> valor por defeito de qualquer variável não utilizada, usualmente designada por “non-value” é considerada por variável nula, mas diferente de 0 ou valor lógico FALSE.
IS_BOOL -> condições TRUE\FALSE - ZVAL_BOOL (var, x);
IS_LONG -> do tipo dos Inteiros, com valores entre -2147483648 e +2147483647 (32 bits) - ZVAL_LONG(var, value);
IS_DOUBLE -> do tipo Virgula Flutuante (Float) com valores entre 2.225x10^ (-308) e 1.798x10^308 (32 bits) - ZVAL_DOUBLE(var, value);
IS_STRING -> bloco de memoria, com espaço suficiente para guardar os caracteres de uma string - ZVAL_STRING(var, str, dup);
IS_ARRAY -> trata-se de estrutura de dados especial, que associa chaves de pesquisa a valores, mais conhecida por Tabela Hash.
IS_OBJECT -> pode ser constituído por vários elementos, classes e métodos os quais o utilizador pode aceder sem ter que conhecer a sua constituição.
IS_RESOURCE -> recurso é uma variável especial, mantendo uma referência de recurso externo. Recursos são criados e utilizados por funções especiais.
Funções:
Z_TYPE(variável) -> retorna tipo de variável
Ex: Z_TYPE (var) == IS_LONG
STRVAL (strings) -> (char*) valor da string
STRLEN (strings) -> (int) tamanho da string
ARRVAL (array) -> tabela hash
MAKE_STD_ZVAL () -> macro do zend para alocar memória de forma segura para variável
ALLOC_INIT_ZVAL () -> iniciativa a variável a NULL
No comments:
Post a Comment