Re: Adding a property to an object

From: Date: Fri, 20 Feb 2009 22:45:51 +0000
Subject: Re: Adding a property to an object
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-43133@lists.php.net to get a copy of this message
David, I personally have not read that book, as I actually heard pertaining to objects ( where I too have had some issues ) it wasn't really a terrific reference. Though if this is not the case, I would love to hear otherwise.. I don't know if this is the "right" way, but a way to go about doing what you want can be done in the PHP_MINIT_FUNCTION() with something like zend_declare_property_string(zend_class_entry* ce, char* name, int name_length, char* value, ZEND_ACC_PRIVATE); Matthew C. Rice David M. Patterson wrote:
Hello all. I am attempting to convert one of my extensions to OOP. I have a class entry and (I think) I've instantiated an instance of it within RINIT(). What I haven't been able to do is add a private property to it. I have the Goleman book and followed the information on pages 148 and 149, to no avail. The book says to call zend_mangle_prooperty_name() specifying the class name as the class name argument. It always fails with "Could not startup." Stepping through with the debugger I find: - zend_mangle_property_name() has worked as described in the book. The property name is \0class\0prop\0. - add_property_double_ex() fails. Actually, the failure is in _zend_property_info() when it explicitly checks the first character of the passed property name for a null and fails if it is. Searching lxr.php.net hasn't helped so far. Suggestions or a pointer to code that is actually doing this would be great. By the way, I'm using PHP 5.2.8. Thanks, Dave


« previous php.internals (#43133) next »