summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/environment.h28
-rw-r--r--include/value.h5
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;
};
/**