How can I call a normal (not static) class function by its name?
The below gives an error saying param 1 needs to be a valid callback. I don’t want the function to be static, I want it to be a normal function, and all the examples I’ve seen so far had them static.
JavaScript
x
class Player
{
public function SayHi() { print("Hi"); }
}
$player = new Player();
call_user_func($Player, 'SayHi');
Advertisement
Answer
The callback
syntax is a little odd in PHP. What you need to do is make an array. The 1st element is the object, and the 2nd is the method.
JavaScript
call_user_func(array($player, 'SayHi'));
You can also do it without call_user_func
:
JavaScript
$player->{'SayHi'}();
Or:
JavaScript
$method = 'SayHi';
$player->$method();