我正在用C编写一个PHP扩展,其中包括用C定义的PHP类。我想在其中一个类上设置静态属性。特别是,我想用C做相当于
class Example{
public static $member;
}
Example::member = new Example();
我不能使用REGISTER_*_CONSTANT
宏来执行此操作,因为该值必须是一个对象。我检查了官方文档,但有关类的部分为空。
您实际上不能注册静态属性,而只需要更新它,然后让PHP为您注册即可。
http://php.undmedlibrary.org/manual/en/zend-api.zend-update-static-property.php
// int zend_update_static_property ( zend_class_entry* $scope, char* $name, int $name_length, zval* $value, magic $TSRMLS_DC )
int prop_set = zend_update_static_property ( my_example_class_entry, "member", 7, my_instance TSRMLS_CC);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句