php call user func, для переменных

228
07 февраля 2018, 14:15

Есть простой класс:

class Test {
public $var = '123';
function func() {
//как можно вызвать $this->var, при помощи конвертации строки в код? То есть примерно так:
$v = 'var';
echo "$this->"."$v";
//И чтобы получилось echo $this->var
}

Спасибо!

Answer 1

как можно вызвать $this->var, при помощи конвертации строки в код?

Передавайте строку с названием свойства класса var вторым параметром в call_user_func(), а в теле callback-функции ссылайтесь на значение этого свойства через псевдопеременную $this и переменную $v:

class Test
{
    private $var = '123';
    public function func()
    {
        return call_user_func(function($v){
            return $this->$v;
        }, 'var');
    }
}
echo (new Test)->func(); // 123
READ ALSO
PHP составление класса

PHP составление класса

Имею базовый класс вывода комментариев, и хотел бы узнать, валидный ли это код или нетВ кратком, перенесу его структуру

248
Как обновить информация в столбце в mysql?

Как обновить информация в столбце в mysql?

Есть столбик xfields, в котором присутствует подобное содержание:

255
Не работают псевдонмы

Не работают псевдонмы

Не понимаю, почему этот алиас работает

212
PHP. Send file to endpoint as binary data [требует правки]

PHP. Send file to endpoint as binary data [требует правки]

In the example below, the file is sent as a stringIs it possible to send a file as a binary data via Guzzle? I mean, send the file as is, without reading

238