假设PHP中有一个类
class my_class{
var $name;
var $age;
var $grade;
}$obj = new my_class();
$obj->name = "sxg";
$obj->age = 20;
$obj->grade = 3;在PHP扩展模块中有一个函数my_class_set, 在PHP页面中可以调用my_class_set($obj),
那么我如何才能在扩展模块中获取到$obj的各个值呢??在线等,感谢您的关注。
class my_class{
var $name;
var $age;
var $grade;
}$obj = new my_class();
$obj->name = "sxg";
$obj->age = 20;
$obj->grade = 3;在PHP扩展模块中有一个函数my_class_set, 在PHP页面中可以调用my_class_set($obj),
那么我如何才能在扩展模块中获取到$obj的各个值呢??在线等,感谢您的关注。
复制粘贴就OK了...PHP_FUNCTION(my_class_set){ zval **obj;
HashTable* m_ht=NULL; zend_get_parameters_ex(1,&obj);
convert_to_object_ex(obj);
m_ht=Z_OBJPROP_PP(obj);
Bucket* p_bkt=m_ht->pListHead;
for(int i=1;i<=(int)m_ht->nNumOfElements;i++){
zval** keyvalue;
char* keyname=estrndup(p_bkt->arKey,p_bkt->nKeyLength-1);
keyvalue=(zval**)p_bkt->pData;
switch((*keyvalue)->type){
case IS_STRING:
{
convert_to_string_ex(keyvalue);
char* kv=Z_STRVAL_PP(keyvalue);
zend_printf("[\"%s\"]=>\"%s\"<br>",keyname,kv);
break;
}
case IS_LONG:
{
convert_to_long_ex(keyvalue);
long kv=Z_LVAL_PP(keyvalue);
zend_printf("[\"%s\"]=>%d<br>",keyname,kv);
break;
}
default:
return;
} p_bkt=p_bkt->pListNext;
}}