2014-06-08 22 views
5

Lavorando su una piccola estensione per PHP utilizzando PHP-CPP, ricevo al lato C++, una matrice con oggetti e ho bisogno di recuperare il nome della classe. L'oggetto Php :: Value non sembra avere alcun metodo per questo.Recupera il nome della classe da un Php :: Value su PHP-CPP

Simile come faccio a HNI in questa estensione: https://github.com/mcuadros/bson-hni/blob/master/src/encode.cpp#L86

+0

C'è qualche possibilità che si possa fare qualcosa con '__CLASS__' al suo interno? http://www.php.net//manual/en/language.constants.predefined.php – Fluffeh

+0

'__CLASS__' è per PHP nell'ambito dell'oggetto. :/ – mcuadros

+0

Sì, non ho mai provato a fare quello che volevi - speravo potessi essere in grado di inventare qualche trucco :) Sono curioso di me stesso ora che lo hai chiesto – Fluffeh

risposta

4

Hai ragione, non esiste alcun metodo speciale per determinare il nome di classe in C++ nell'oggetto Php :: Valore. Il modo migliore per determinare il nome classe è quindi quello di utilizzare il metodo PHP :: chiamata per chiamare il metodo get_class in PHP userspace:

std::string classname = Php::call("get_class", object); 

Dove oggetto è uno degli oggetti nella matrice menzionato.