* Thus wrote Mathieu Dumoulin: > I'm trying to setup a function from user code inside a defined object or a > class definition but it doesnt seem to work. Am i doing it right? Is there > something i need to know... is it even possible? > > I know create_function can be used to create a function and it returns the > ident to run the function later on, lookup create_function on php.net and it > seems possible. Now i wonder if you can actually assign this function inside > a class. My final goal is to create a set of functions or objects that will > be able to "implement" interfaces to object classes, which is something > missing to the PHP language. > > ------------------ > RESULT > ------------------ > allo > Fatal error: Call to undefined function: b() in > /home/tech/web/testboard/implements.php on line 21
This is because $a->b is a member not a method. One option that you might want to look at is: http://php.net/classkit Keep in mind the above is still in beta, but will allow you to add/remove/redefine methods of objects at runtime. iirc it works with php4 and php5. The other option would be to set a variable within a class that the method b() uses: class impl_a { var $_b; function setFunc($func, $params, $code) { $var = "_$func"; /* set up $this->varname */ $this->$var = create_function($params, $code); } function b() { $func = $this->_b; $func(); } } $a = new impl_a(); $a->setFunc('b', '', 'echo "hello world"'); $a->b(); Its Not very clean solution, but might work in you situation. Curt -- The above comments may offend you. flame at will. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php