4
我希望我的PHP擴展來聲明相當於一個類下面的PHP:如何將一個數組作爲對象屬性添加到在PHP擴展中聲明的類中?
class MyClass
{
public $MyMemberArray;
__construct()
{
$this->MyMemberArray = array();
}
}
我按照「Advanced PHP Programming」的例子,「Extending and Embedding 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頁上的示例一個創建數組屬性的構造函數,但示例代碼不能編譯(第二個「對象」似乎是多餘的)。
我固定的bug,它適用於我的代碼:
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);
}
這編譯,但它給施工同一運行時錯誤。
但你知道爲什麼是這樣的答案嗎?什麼是推理? – 2016-06-19 18:25:53