Reputation: 686
I have an array $run
that hold $run[0] - class name
and $run[1] - class method to run
and i want to be able to do this :
// this is working ok
$class = new $run[0]();
// this is error
$class->$run[1]();
What is the best and most elegant way of doing this ?
Thanks
Upvotes: 0
Views: 20
Reputation: 12236
Add {}
around $run[1]
: This uses an anonymous class which is available since PHP >= 7.0
<?php
$run = [];
$run[0] = new Class {
public function myMethod(){
return 'Hello world';
}
};
$run[1] = 'myMethod';
$class = new $run[0]();
echo $class->{$run[1]}(); //Returns Hello world
Upvotes: 1