I can't speak English. so I'll shortly talk.
(and I can't using cvs.. ^^;;;)
I found that zend_register_internal_class() and
zend_register_internal_class_ex() is impossible adding default
properties. And instance properties(adding by add_property_*()
functions) can't inherit.
I think, It's mean that user-defined class could not inherit default
properties of internal classes.
So, I define and implement new functions. and suggest.. :)
ZEND_API zend_class_entry
*zend_register_internal_class_with_default_property(zend_class_entry
*class_entry, HashTable *default_properties);
ZEND_API zend_class_entry
*zend_register_internal_class_ex_with_default_property(zend_class_entry
*class_entry, zend_class_entry *parent_ce, char *parent_name, HashTable
*default_properties);
and add_default_property_*() functions.
zend_extend.h zend_extend.c
<-- This is extended code. This append Zend_API.h(.c).
php_scl.h scl.c
<-- Test Code. This register internel classes 'object'
and 'subobjet'.
scl.php
<-- Test script that working 'object', 'subobject' and
'subobject2'(subclass of 'subobject').
This is rusult excuted scl.php
---------------------------------------------------------
Built-in class Object test.
---------------------------------------------------------
Success to create instance of class object.
Object Class Name : object
Object Parent Class Name :
Object Object Vars :
Array
(
[long_var1] => 100
[null_var1] =>
[bool_var1] => 1
[double_var1] => 100.1
[string_var1] => value
[stringl_var1] => value
[array_var1] => Array
(
)
)
Object Class Vars :
Array
(
[long_var1] => 100
[null_var1] =>
[bool_var1] => 1
[double_var1] => 100.1
[string_var1] => value
[stringl_var1] => value
[array_var1] => Array
(
)
)
Object Methods :
Array
(
[0] => object
[1] => getclass
[2] => getparentclass
[3] => getobjectvars
[4] => getclassvars
[5] => getmethods
[6] => methodexists
[7] => issubobjectof
)
---------------------------------------------------------
Built-in class Subobject test.
---------------------------------------------------------
Success to create instance of class subobject.
Subobject Class Name : subobject
Subobject Parent Class Name : object
Subobject Object Vars :
Array
(
[long_var2] => 200000
[null_var2] =>
[bool_var2] => 1
[double_var2] => 200.2
[string_var2] => extended_value
[stringl_var2] => extended_value
[array_var2] => Array
(
)
[long_var1] => 100
[null_var1] =>
[bool_var1] => 1
[double_var1] => 100.1
[string_var1] => value
[stringl_var1] => value
[array_var1] => Array
(
)
[type] => 100
[value] => 100
)
Subobject Class Vars :
Array
(
[long_var2] => 200000
[null_var2] =>
[bool_var2] => 1
[double_var2] => 200.2
[string_var2] => extended_value
[stringl_var2] => extended_value
[array_var2] => Array
(
)
[long_var1] => 100
[null_var1] =>
[bool_var1] => 1
[double_var1] => 100.1
[string_var1] => value
[stringl_var1] => value
[array_var1] => Array
(
)
)
Subobject Methods :
Array
(
[0] => subobject
[1] => object
[2] => getclass
[3] => getparentclass
[4] => getobjectvars
[5] => getclassvars
[6] => getmethods
[7] => methodexists
[8] => issubobjectof
)
---------------------------------------------------------
User-defined class Subobject2 test.
---------------------------------------------------------
Success to create instance of class subobject.
Subobject Class Name : subobject2
Subobject Parent Class Name : subobject
Subobject Object Vars :
Array
(
[long_var2] => 200000
[null_var2] =>
[bool_var2] => 1
[double_var2] => 200.2
[string_var2] => extended_value
[stringl_var2] => extended_value
[array_var2] => Array
(
)
[long_var1] => 100
[null_var1] => not null :)
[bool_var1] =>
[double_var1] => 203023.302
[string_var1] => another value
[stringl_var1] => another value
[array_var1] => Array
(
[foo] => var
)
[type] => 100
[value] => 100
)
Subobject Class Vars :
Array
(
[long_var2] => 200000
[null_var2] =>
[bool_var2] => 1
[double_var2] => 200.2
[string_var2] => extended_value
[stringl_var2] => extended_value
[array_var2] => Array
(
)
[long_var1] => 100
[null_var1] => not null :)
[bool_var1] =>
[double_var1] => 203023.302
[string_var1] => another value
[stringl_var1] => another value
[array_var1] => Array
(
[foo] => var
)
)
Subobject Methods :
Array
(
[0] => subobject
[1] => object
[2] => getclass
[3] => getparentclass
[4] => getobjectvars
[5] => getclassvars
[6] => getmethods
[7] => methodexists
[8] => issubobjectof
[9] => subobject2
)
scl.tgz
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]