Hi, I am writing my own PHP Extension called php2ucs to PHP 5.0.
In PHP 4.2.x, we had the following definitions in _zend_class_entry in zend.h file: 1. Method call: void (*handle_function_call)(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference); 2. Property Get: zval (*handle_property_get)(zend_property_reference *property_reference); 3. Property Set: int (*handle_property_set)(zend_property_reference *property_reference, zval *value); In PHP 5.0: _zend_class_entry in zend.h has the following: union _zend_function *__get; union _zend_function *__set; union _zend_function *__call; I am doing the below in my extension: zend_internal_function invoke_method_fe; zend_internal_function get_property_fe; zend_internal_function set_property_fe; static void php2ucs_class_init_func(zend_internal_function *fe, void (*handler)(INTERNAL_FUNCTION_PARAMETERS)) { fe->type = ZEND_INTERNAL_FUNCTION; fe->handler = handler; fe->function_name = NULL; fe->scope = NULL; fe->fn_flags = 0; fe->prototype = NULL; fe->num_args = 2; fe->arg_info = NULL; fe->pass_rest_by_reference = 0; } PHP_MINIT_FUNCTION(ucs) { int i; php2ucs_class_init_func(&invoke_method_fe, invoke_method); php2ucs_class_init_func(&get_property_fe, get_property); php2ucs_class_init_func(&set_property_fe, set_property); // Register 'class' info and functions for accessing methods and properties INIT_OVERLOADED_CLASS_ENTRY(ucs_class_entry, "ucs", NULL, (zend_function *)&invoke_method_fe, (zend_function *)&get_property_fe, (zend_function *)&set_property_fe); zend_register_internal_class(&ucs_class_entry TSRMLS_CC); } The zend_internal_function structure (in zend_compile.h) has void (*handler)(INTERNAL_FUNCTION_PARAMETERS); as an element. This makes it mandatory that all the above three functions (invoke_method, get_property and set_property) have the same signature which is INTERNAL_FUNCTION_PARAMETERS. My question is, how do I get the zend_property_reference and zval from this like we had in PHP 4.2.3? Or is it that there is another approach in PHP 5.0 without using them? It will really help me if you could let me know how to do this or point me to a documentation or a FAQ on this. Thanks, Ananth. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php