Я думаю, вы, возможно, неправильно поняли ответ на пост, который вы указали в своем вопросе.Хотя, к твоему кредиту, это было немного странно.В ответе представлены два возможных решения:
1.) Измените z
на z/
в вызове на zend_parse_parameters()
или
2.) Добавьте вызовыZVAL_DEREF(a);
и SEPARATE_ZVAL_NOREF(a);
перед переназначением zval.
Второй вариант, по сути, делает то, что сделал бы модификатор /
, если бы он был предоставлен при вызове zend_parse_parameters()
.Как документация указывает:
Расширенные характеристики типа
Спецификация Описание
...
/
SEPARATE_ZVAL_IF_NOT_REF
для параметра, который следует
...
Так что вы должны использовать только опцию№ 1 или просто вариант № 2.Вы применили оба варианта одновременно, что означает, что разыменование происходит дважды.