2015-08-30 5 views
0

Заявляю метод как вариант:расширение HHVM, как вернуть класс

Variant HHVM_METHOD(MyClass1, get) { 
Object ob; 
ob.o_set(s_PropertyName1, value1, s_MyClass2); 
ob.o_set(s_PropertyName1, value2, s_MyClass2); 
return Variant(ob); 
} 

PHP код:

$c = new MyClass1(); 
var_dump($c->get()); // return StdClass 

Как создать и вернуть MyClass2:

var_dump($c->get()); // must return MyClass2 

ответ

2

При создании группы Object, вам необходимо передать указатель на объект Class.

Variant HHVM_METHOD(MyClass1, get) { 
    Object ob{Unit::loadClass(s_MyClass2.get()}; 
    ob.o_set(s_PropertyName1, value1, s_MyClass2); 
    ob.o_set(s_PropertyName1, value2, s_MyClass2); 
    return ob; 
} 

Вы можете увидеть это используется в DateTime::createFromFormat