PHP C++;静态方法的扩展 我有一个C++类,包含一个静态方法。< /P>

PHP C++;静态方法的扩展 我有一个C++类,包含一个静态方法。< /P>,php,static-methods,php-extension,Php,Static Methods,Php Extension,宣言: class QConfig { public: static int testStatic(); }; 实施: int QConfig::testStatic() { return 12345; } 我希望能够从PHP中使用它,如下所示: echo QConfig::testStatic() // expected result: 12345 我试过使用: PHP_METHOD(QConfig, testStatic) { QC

宣言:

class QConfig
{       
    public:
        static int testStatic();
};
实施:

int QConfig::testStatic()
{
    return 12345;
}
我希望能够从PHP中使用它,如下所示:

echo QConfig::testStatic() // expected result: 12345
我试过使用:

PHP_METHOD(QConfig, testStatic)
{
    QConfig *qconfig;
    qconfig_object *obj = (qconfig_object *)zend_object_store_get_object(
        getThis() TSRMLS_CC);
    qconfig = obj->qconfig;
    if (qconfig != NULL) {
        RETURN_LONG(qconfig->testStatic, 1);
    }
    RETURN_NULL();
}

但这会导致生成错误:

/home/testuser/test/mytest.cc:81:9: error: invalid conversion from 'int (*)()' to 'long int' [-fpermissive]
/home/testuser/test/mytest.cc: At global scope:
/home/testuser/test/mytest.cc:122:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
make: *** [mytest.lo] Error 1

如何在C++ PHP扩展中访问静态方法?< > >代码> ZEnYAccaPuule代码> ZEnYAccaStime< /C> >

>更改>代码> ZDENAACCUPUB/<代码> >代码> ZEnYAccaStimult.<:P>以上:应该是“RealthyLon”,而不是“RealthIn”类型:应该是“RealthIn”,而不是“RealthItIn”。

/home/testuser/test/mytest.cc:81:9: error: invalid conversion from 'int (*)()' to 'long int' [-fpermissive]
/home/testuser/test/mytest.cc: At global scope:
/home/testuser/test/mytest.cc:122:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
make: *** [mytest.lo] Error 1