2

我正在尝试从 C 库中包装一个自定义 php 扩展,现在我有一个 Initializer 函数,它启动一个特定的自定义连接,而且似乎很昂贵,我不应该在每次调用该函数时都运行它。

假设我在 ZEND 包装器中有以下内容,

PHP_FUNCTION(get_data){
    conn = conn_init();
    data = getdata(conn);
    return data;
}

conn_init()这是一个昂贵的电话,我应该把那个功能放在哪里?

我可以要求用户conn_init()从 PHP 调用吗?如何调用?

4

1 回答 1

1

看起来你应该包装conn资源

然后使用您的扩展程序的脚本可能看起来像

$conn = YOUREXT_connect($cparams);
$data[1] = YOUREXT_getdata($conn, $params[1]);
$data[2] = YOUREXT_getdata($conn, $params[2]);
$data[3] = YOUREXT_getdata($conn, $params[3]);
于 2011-11-17T12:22:45.810 回答