我希望我的PHP扩展能够声明一个与以下PHP等效的类:
在《高级PHP编程》第557页上有一个例子,说明如何声明一个构造函数来创建数组属性,但是示例代码无法编译(第二个“object”似乎是多余的)。
我修复了这个错误,并将其适应于我的代码:
这段代码可以编译通过,但在构建时会出现相同的运行时错误。
class MyClass
{
public $MyMemberArray;
__construct()
{
$this->MyMemberArray = array();
}
}
我正在跟随 "高级PHP编程" 和 "扩展和嵌入PHP" 中的示例,我能够在 PHP_MINIT_FUNCTION
中声明一个具有整数属性的类。
然而,当我使用相同的方法在 PHP_MINIT_FUNCTION
中声明一个数组属性时,在运行时会出现以下错误消息:
PHP Fatal error: Internal zval's can't be arrays, objects or resources in Unknown on line 0
在《高级PHP编程》第557页上有一个例子,说明如何声明一个构造函数来创建数组属性,但是示例代码无法编译(第二个“object”似乎是多余的)。
我修复了这个错误,并将其适应于我的代码:
PHP_METHOD(MyClass, __construct)
{
zval *myarray;
zval *pThis;
pThis = getThis();
MAKE_STD_ZVAL(myarray);
array_init(myarray);
zend_declare_property(Z_OBJCE_P(pThis), "MyMemberArray", sizeof("MyMemberArray"), myarray, ZEND_ACC_PUBLIC TSRMLS_DC);
}
这段代码可以编译通过,但在构建时会出现相同的运行时错误。