par
Fooshi » 26 oct. 2010, 11:25
Bonjour,
j'ai une fonction php dans une extension qui copie un pointeur de structure dans une ressource comme ceci :
PHP_FUNCTION(module_test_sql_result)
{
struct test_sql_result * result;
struct test_sql_result * result_new;
struct net_func_instance * instance;
long arg_instance;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &arg_instance) == FAILURE)
{
RETURN_FALSE;
}
instance = (struct net_func_instance *) arg_instance;
result = (struct test_sql_result * ) net_func_pop_result(instance);
if (result != NULL)
{
result_new = emalloc(sizeof(struct test_sql_result));
result_new->intval = result->intval;
result_new->floatval = result->floatval;
strcpy(result_new->strval, result->strval);
ZEND_REGISTER_RESOURCE(return_value, result_new, le_test_sql_result);
}
else
{
RETURN_NULL();
}
}
dans mon fichier php si je fais ca :
while(($results = module_test_sql_result($instance)) != NULL)
{
echo "<PHP>RESULT : " . $results . "</PHP>";
}
ca m'affiche "resource id #1" etc
si je fais ca :
while(($results = module_test_sql_result($instance)) != NULL)
{
echo "<PHP>RESULT : " . $results->intval . "</PHP>";
}
ca ne m'affiche pas la valeur.
quel est le probleme avec cette fonction ?
Merci d'avance pour vos reponses.