php7中is_ref__gc的替代品是啥

Posted

技术标签:

【中文标题】php7中is_ref__gc的替代品是啥【英文标题】:What is the substitute for is_ref__gc in php7php7中is_ref__gc的替代品是什么 【发布时间】:2016-05-02 18:58:30 【问题描述】:

php5 中,zval 结构有一个成员 'is_ref__gc'。我们可以这样使用它:

zval *x
...
...
if (!x->is_ref__gc)
   
       printf("newx or newy isn't by ref");
       return;
     

但是,在php7中,zval没有这样的成员。 php7 中 is_ref__gc 的替代品是什么?即如何修改上面的代码?

【问题讨论】:

Z_ISREF_P。就像你应该在 PHP 5 中做的那样。你知道,它被称为is_ref__gc 是有原因的。 PHP 7 中的 zval 通常不作为指针传递,并且它们本身不包含引用计数。阅读:wiki.php.net/phpng-upgrading 【参考方案1】:

我变了

if (!x->is_ref__gc)

if (x->value.ref->gc.refcount == 0)

现在看来,效果不错。

【讨论】:

以上是关于php7中is_ref__gc的替代品是啥的主要内容,如果未能解决你的问题,请参考以下文章

新版本 Django 中 DateModifierNode 的替代品是啥

Windows 中 posix_memalign 的正确替代品是啥?

PHP 7.3 中的 mcrypt_create_iv 替代方案 [重复]

这个 typedef 涉及 LPWSTR 是啥意思?

PHP 7.2中mcrypt_encrypt的精确替代

python:匿名函数的替代品