Вызов статического метода в PHP через переменную - PullRequest
0 голосов
/ 29 января 2019

Я работаю в проекте Laravel и не могу вызвать статический метод для переменной Например:

$objName = 'User';
$objName::get();

При этом я получаю ошибку.

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Хорошо, я использую

User::all();

Но я хочу получить параметр из URL, например, www.example.com/User, www.example.com/Articles -> Пользователь и статья - это параметр в URL (этоэто веб-маршрут Laravel) и вызов статического метода.Когда я пишу первый URL, а затем вызываю объект User, если я пишу первый URL, чем вызываю объект Article.

www.example.com / User

$param= 'User';
$param::all();

www.example.com / Article

$param= 'Article';
$param::all()
0 голосов
/ 01 февраля 2019

Я нахожу решение!Это решение в Laravel:

$data = call_user_func( array('\App\\'.$param , 'all'));

, но если вы хотите использовать в простом PHP, то это:

$data = call_user_func( array($param , 'all'));

Это вызовет объект и метод.

Если вы хотитеотправить arg в метонд тент:

$data = call_user_func( array('\App\\'.$param , 'all'), $arg);  /*For Laravel*/
$data = call_user_func( array($param , 'all'), $arg);  /*For plain PHP*/
0 голосов
/ 29 января 2019
$objName = 'User';

является строкой, для использования метода get() $ objName должен быть объект, например:

$objName = User::all()->first(); // this will return an object
...