diff options
Diffstat (limited to 'tests/cpp/include/variables.h')
-rw-r--r-- | tests/cpp/include/variables.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/cpp/include/variables.h b/tests/cpp/include/variables.h index b7063ef..e8cb526 100644 --- a/tests/cpp/include/variables.h +++ b/tests/cpp/include/variables.h @@ -289,6 +289,61 @@ namespace TestVariables { return object; } + /** + * A sample class, with methods to cast objects to scalars + */ + class Obj2Scalar : public Php::Base + { + public: + /** + * C++ constructor and C++ destructpr + */ + Obj2Scalar() {} + virtual ~Obj2Scalar() {} + + /** + * Cast to a string + * + * Note that now we use const char* as return value, and not Php::Value. + * The __toString function is detected at compile time, and it does + * not have a fixed signature. You can return any value that can be picked + * up by a Php::Value object. + * + * @return const char * + */ + const char *__toString() + { + return "Mount Meru, also called Sumeru (Sanskrit)"; + } + + /** + * Cast to a integer + * @return long + */ + long __toInteger() + { + return 27032014; + } + + /** + * Cast to a floating point number + * @return double + */ + double __toFloat() + { + return 3.14159265359; + } + + /** + * Cast to a boolean + * @return bool + */ + bool __toBool() + { + return true; + } + }; + /* * Test Php::Value resize */ |