Monday, November 20, 2006

Funções com Parâmetros

Para construir uma função que necessita de receber argumentos, o PHP irá recorrer á Macro zend_parse_parameters().

Ex: zend_parse_parameters( zend_num_args() TSRMLS_CC, tipo_variavel, referencia_variavel, referencia_tamanho)


zend_num_args() – retorna um INT com o nº de parâmetros passados para a função

Tipos de Variável:

b -Booleano zend_bool
l -Inteiro long
d -Virgula Flutuante double
s -String char*, int
r -Resource zval*
a -Array zval*
o -Instância de um Objecto zval*
O -Instância de um Objecto de um tipo especifico zval*, zend_class_entry*
z -Zval não especifico zval*
Z -Zval não especifico referenciado zval**

Ex:

Em PHP:

function testPar($value) {
echo " $value ";
}



Em C:

PHP_FUNCTION(testPar)
{
char *value;
int value_len;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
&value, &value_len) == FAILURE) {
RETURN_NULL();
}
PHPWRITE(value, value_len);
}


Parâmetros Opcionais:

| -Valor Opcional
! -Se a variável logo a seguir for do tipo NULL, o PHP irá atribuirlhe o valor interno IS_NULL zval.
/ -Criação de nova variável is_ref==0 e refcount==1.

No comments: