Как мне вызвать класс-> метод из строк? - PullRequest
0 голосов
/ 24 января 2012

Это можно вызвать класс и метод из строк?

Что-то вроде:

// $_REQUEST['var'] = 'House-Kitchen';

$var = explode('-',$_REQUEST['var']);

echo $var[0]->$var[1];

Ответы [ 2 ]

3 голосов
/ 24 января 2012

Да. возможно. Если $var[0] является именем класса , будет работать следующее.

call_user_func(array($var[0], $var[1]));

Если $var[0] является именем экземпляра класса , будет работать следующее.

call_user_func(array(get_class(${$var[0]}), $var[1]));

Ссылки:

  1. call_user_func
  2. get_class
1 голос
/ 24 января 2012

Лучший способ - попробовать.

Я попробовал:

$House = new stdClass();
$House->Kitchen = "visible result";

$_REQUEST['var'] = 'House-Kitchen';

$var = explode('-',$_REQUEST['var']);

echo $$var[0]->$var[1];

Это работает. Будьте осторожны: вам нужно использовать двойной $ для первого элемента (чтобы использовать переменную с $var[0] name).

И будьте очень осторожны: это нарушение высокой степени безопасности (вы разрешаете всем вызывать методы для текущего определенного класса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...