123onetwothree
123onetwothree

Reputation: 686

php class and method from array not able to call

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

Answers (1)

Daan
Daan

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

Related Questions