diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2013-09-15 13:57:53 -0700 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2013-09-15 13:57:53 -0700 |
commit | 9e1ecc534bace7d00a265a49018c0148a56361ae (patch) | |
tree | f7a779b999a7aed942510e3d448355f3554c20c7 /include | |
parent | 9634a336f080bc15c1e67495eb9216d1863808f8 (diff) |
Added Environment::call() method that makes it possible to call PHP functions
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; }; /** |