diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/environment.h | 28 | ||||
-rw-r--r-- | include/value.h | 5 |
2 files changed, 32 insertions, 1 deletions
diff --git a/include/environment.h b/include/environment.h index 6484d83..a7512d7 100644 --- a/include/environment.h +++ b/include/environment.h @@ -107,7 +107,33 @@ public: */ Global operator[](const std::string &name); - + /** + * Call a function in PHP + * We have ten variants of this function, depending on the number of parameters + * @param name Name of the function + * @return Value + */ + Value call(const Value &name); + Value call(const Value &name, Value p0); + Value call(const Value &name, Value p0, Value p1); + Value call(const Value &name, Value p0, Value p1, Value p2); + Value call(const Value &name, Value p0, Value p1, Value p2, Value p3); + Value call(const Value &name, Value p0, Value p1, Value p2, Value p3, Value p4); + Value call(const Value &name, Value p0, Value p1, Value p2, Value p3, Value p4, Value p5); + Value call(const Value &name, Value p0, Value p1, Value p2, Value p3, Value p4, Value p5, Value p6); + Value call(const Value &name, Value p0, Value p1, Value p2, Value p3, Value p4, Value p5, Value p6, Value p7); + Value call(const Value &name, Value p0, Value p1, Value p2, Value p3, Value p4, Value p5, Value p6, Value p7, Value p8); + Value call(const Value &name, Value p0, Value p1, Value p2, Value p3, Value p4, Value p5, Value p6, Value p7, Value p8, Value p9); + +private: + /** + * Call function with a number of parameters + * @param name Function name + * @param argc Number of parameters + * @param argv The parameters + * @return Value + */ + Value exec(const Value &name, int argc, struct _zval_struct ***params); protected: /** diff --git a/include/value.h b/include/value.h index fa2b608..e29b8f2 100644 --- a/include/value.h +++ b/include/value.h @@ -492,6 +492,11 @@ protected: * @var struct zval */ struct _zval_struct *_val; + + /** + * The environment can access the zval directly + */ + friend class Environment; }; /** |