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.
class Player {     public function SayHi() { print("Hi"); } }  $player = new Player();  call_user_func($Player, 'SayHi'); 
                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.
call_user_func(array($player, 'SayHi'));   You can also do it without call_user_func:
$player->{'SayHi'}();   Or:
$method = 'SayHi'; $player->$method(); 
                        You need to pass the object and method together as an array:
call_user_func(array($Player, 'SayHi'));   See callbacks, specifically:
// Type 3: Object method call $obj = new MyClass(); call_user_func(array($obj, 'myCallbackMethod')); 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With