问题描述
我尝试编译一个从 PHP 5 移植到 PHP 7 的 PHP 扩展。我根据以下说明移植它:https://wiki.php.net/phpng-upgrading
我收到两个警告:
我将代码更改如下:
LONG rc = 0;
zval* ctx_res;
SCARDCONTEXT context;
/* OLD VERSION:
ZEND_FETCH_RESOURCE(context,SCARDCONTEXT,&ctx_res,-1,PHP_PCSC_CTX_RES_NAME,le_pcsc_ctx_res);
*/
/* NEW VERSION: */
if ((context = (SCARDCONTEXT)zend_fetch_resource(Z_RES_P(ctx_res),le_pcsc_ctx_res)) == NULL) { // the warning happens here
RETURN_FALSE;
}
但这正是上述说明建议的替代品。如何防止出现此警告?
第二次警告:
警告:传递 'zend_hash_index_del' 的参数 2 会在没有强制转换的情况下从指针生成整数 [默认启用]
这里我把代码改成如下:
/* OLD VERSION
zend_hash_index_del(&EG(regular_list),Z_RESVAL_P(ctx_res));
*/
/* NEW VERSION */
zend_hash_index_del(&EG(regular_list),Z_RES_P(ctx_res));
说明建议更改 Z_RESVAL_P 如下:
- 长句柄 = Z_RESVAL_P(zv);
- 长句柄 = Z_RES_P(zv)->句柄;
但我不知道手柄应该是什么。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)