php - 如何将 zval* 转换为对象?

标签 php c++ php-extension

我有:

PHP_METHOD(Car, cls_ref)
{
    Car *car;
    //Car2 *obj11;
    Car2 *car2;
    zval* obj11;
    zend_class_entry ce2 = zend_fetch_class("Car2", sizeof("Car2")-1, ZEND_FETCH_CLASS_DEFAULT TSRMLS_CC);


     if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &obj11,ce2) == FAILURE) {
        RETURN_NULL();
    }

    car_object *obj = (car_object *)zend_object_store_get_object(
        getThis() TSRMLS_CC);
  /*  car2_object *objj = (car2_object *)zend_object_store_get_object(
        getThis() TSRMLS_CC);
       car2=(objj->car2);
    */  
    car = obj->car;
    if (car != NULL) {
        //cout<<"in car 2 ref"<<endl;

        //car2->reference(s);
    //  (car->cls_ref((Car2&)car2));
    car->cls_ref((Car2&)obj11);
    }

}

where void Car::cls_ref(Car2 &obj){...}

我来解决这个问题。我有错误:

error: cannot convert ‘Car2*’ to ‘zval*’ in initialization /home/vehicles.cc:191: error: conversion from ‘zend_class_entry*’ to non-scalar type ‘zend_class_entry’ requested `(the errors are at the point where i intialize obj11 and at ce2=..)

最佳答案

使用 API convert_to_object_ex(value) 将 zval 转换为对象。这里,value 的类型是 **zval。

-高拉夫

关于php - 如何将 zval* 转换为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427750/

相关文章:

c++ - 在计算密集型程序中正确使用流

php - 什么是 'module_number' 作为 zend_register_list_destructors_ex 的参数

php - 仅从昨天的数据库中选择 sql

php - 从 MySQL 数据生成动态图

c++ - C++ 中的返回函数类型示例

c++ - UE4 从外部 .FBX 文件创建 UStaticMesh 返回 NULL

php - 数以千计的 TIME_WAIT 尽管有 SO_LINGER、关机等

php - Telegram Bot sendDocument(托管服务器上的 php)

php - XXHash for PHP(无模块/扩展)

php - 清理多余的 PHP 扩展 - 将所有内容切换到 mcrypt 或 openssl?