我正在写php扩展,并尝试找出通过方法(当然是通过扩展注册)返回类私有属性值的最佳方法是什么。
这是我到目前为止所拥有的:
PHP_MINIT_FUNCTION(uamqp_connection) {
// class initialization
zend_declare_property_bool(this_ce, "boolValue", sizeof("boolValue") - 1, 0, ZEND_ACC_PRIVATE);
}
然后是方法:
PHP_METHOD(Test, getBool)
{
if (zend_parse_parameters_none() == FAILURE) {
return;
}
RETURN_BOOL(zval_get_long(zend_read_property(this_ce, getThis(), "boolValue", sizeof("boolValue") -1, 1, NULL)));
}
我不确定稍后传递给zval_get_long
的{{1}}是不是可以被认为是有效的方式?有没有更简单/更明显的解决方案?这似乎很奏效,但我对此仍然没有信心。