gpt4 book ai didi

php - zend 引擎返回对象引用

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:15 25 4
gpt4 key购买 nike

在 php 中,这样写是有效的:

<?php
class Foo
{
public function bar()
{
return $this;
}
}
?>

我如何在 zend 引擎中执行此操作?我想要一个方法来执行一些操作,然后返回类实例引用。

此外,我想存储一些对象(来自其他类)并作为其他方法的结果返回它们,我应该将其存储为 zval* 吗?返回对它的引用的正确方法是什么?

最佳答案

没错,你需要返回zval*。您需要为此使用 RETURN_ZVAL,声明为:

RETURN_ZVAL(zv, ctor, dtor)

第一个参数 zv 是您的 zval*。第二个 ctor 告诉 Zend 引擎使用复制构造函数(它用于维护 refcount)。最后一个参数 dtor 告诉 Zend 引擎将析构函数应用于 zv(也与 refcount 相关)。通常,除非您知道自己在做什么,否则最后两个参数应该分别为 10

要返回 $this,每个示例:

PHP_METHOD(Foo, bar)
{
RETURN_ZVAL(getThis(), 1, 0);
}

这里,getThis() 返回一个 zval*$this。如果需要,您可以传递包含 PHP 对象的任何其他 zval*

关于php - zend 引擎返回对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11972365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com