# how declare protected array property at internal class properly

- Thread: https://externals.io/message/32634
- Original archive: https://news-web.php.net/php.internals/32634
- Started by Denis Gabaidulin on 2007-10-04T20:19:18+00:00
- Messages: 3
- Reply by email to internals@lists.php.net
- More for agents: search with https://externals.io/search.md?q={query} · JSON API at https://externals.io/api · documentation at https://externals.io/llms.txt

---

## #32634 — Denis Gabaidulin — 2007-10-04T20:19:18+00:00

URL: https://externals.io/message/32634#32634

How can i do subj ?

I try make this with follwoing code:

declare prop:

zend_declare_property_null(ns_ce_ ## my_class, "prop", strlen("prop"),
, ZEND_ACC_PROTECTED TSRMLS_CC);


at constructor:

zval *prop;

/* init */
prop =  zend_read_property(Z_OBJCE_P(getThis()), getThis(), "prop",
strlen("prop",), 1 TSRMLS_CC);

array_init(prop);


After building ext (with debug) i get following error:

Fatal error: Internal zval's can't be arrays, objects or resources

---

## #32635 — Michael Wallner — 2007-10-04T20:54:09+00:00

URL: https://externals.io/message/32634#32635 · In reply to: #32634

Denis Gabaidulin wrote:
> How can i do subj ?

> at constructor:
> 
> zval *prop;
> 
> /* init */
> prop =  zend_read_property(Z_OBJCE_P(getThis()), getThis(), "prop",
> strlen("prop",), 1 TSRMLS_CC);
> 
> array_init(prop);

zval *prop;
MAKE_STD_ZVAL(prop);
array_init(prop);
zend_update_property(Z_OBJCE_P(getThis()), getThis(),
	ZEND_STRS("prop")-1, prop TSRMLS_CC);
zval_ptr_dtor(&prop);

IIRC complex types for internal zvals was on some engine todo or--at
least--wish list...

Regards,
-- 
Michael

---

## #32636 — Denis Gabaidulin — 2007-10-04T21:39:17+00:00

URL: https://externals.io/message/32634#32636 · In reply to: #32635

>
> zval *prop;
> MAKE_STD_ZVAL(prop);
> array_init(prop);
> zend_update_property(Z_OBJCE_P(getThis()), getThis(),
>         ZEND_STRS("prop")-1, prop TSRMLS_CC);
> zval_ptr_dtor(&prop);
>
> IIRC complex types for internal zvals was on some engine todo or--at
> least--wish list...

Good news...

>
> Regards,
> --
> Michael


Thanks a lot, Michael.
