Hello
Is it possible to call functions from class like this:
$class = new class;
$function_name = "do_the_thing";
$req = $class->$function_name();
Something similar solution, this doesn't seem to work?
Martti Laine
From stackoverflow
-
Yes, it is possible, that is know as variable functions, have a look at this.
Example from PHP's official site:
<?php class Foo { function Variable() { $name = 'Bar'; $this->$name(); // This calls the Bar() method } function Bar() { echo "This is Bar"; } } $foo = new Foo(); $funcname = "Variable"; $foo->$funcname(); // This calls $foo->Variable() ?>In your case, make sure that the function
do_the_thingexists. Also note that you are storing the return value of the function:$req = $class->$function_name();Try to see what the variable
$reqcontains. For example this should give you info:print_r($req); // or simple echo as per return value of your functionNote:
Variable functions won't work with language constructs such as
echo(), print(), unset(), isset(), empty(), include(), require()and the like. Utilize wrapper functions to make use of any of these constructs as variable functions.MAS1 : +1 for information given in Note.Sarfraz : @MAS1: Yeah it is very important :)Martti Laine : Thanks, a nice and detailed answer! :)Sarfraz : @Martti Laine: You are welcome :)
0 comments:
Post a Comment