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
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php