Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Переменная-переменой в Классе


Автор: Mushu 15.5.2008, 13:10
Как можно реализовать работу с генерации динамических переменных в классе, $$
пример кода представляю по нему вы точно поймете суть вопроса.

если не брать класс в расчет то это будет через $$ а вот как в классе это реализовываться ???

Код


class pop
{

    private $a;
    private $b;
    private $c;

    private $mass_name;

    function ini()
    {
        $this->a = 1;
        $this->b = 2;
        $this->c = 3;

        $this->mass_name[] = "a";
        $this->mass_name[] = "b";
        $this->mass_name[] = "c";

    }



    function start()
    {
        $this->ini();

        //?????????????????????????????????????????????????????????????????????????????????????????????
        echo $this->$$this->mass_name[0]; /// сдесь должно быть аналогично вот этому оброщению $this->a
    }

}


$obj = new pop;

$obj->start();
 

Такое обращение не работает $this->$$this->mass_name[0]

Автор: Feldmarschall 15.5.2008, 13:16
переменные переменные нужны только тем, кто не умеет работать с массивами.

Автор: Mushu 15.5.2008, 13:24
Feldmarschall
 Ты не прав, при создание соотношения имен это используется.

Автор: Feldmarschall 15.5.2008, 13:27
Какое ещё "соотношение имен"?

Еще раз повторяю: во всех случаях, когда может возникнуть мысль о переменных переменных, массив справляется с задачей проще, а, главное - корректнее.

Автор: Mushu 15.5.2008, 13:44
приведу пример.

Допустим задача такая:

В функцию мы падаем    инструкцию (перечень имен) "кот_ко", "мот_ко"
(инструкция отвечает в какой последовательности в функции распечатывать ее переменные )


в самой функции есть  переменные 

$кот = 5;
$mot = 6;

в самой функции есть матрица имен соотношений

$mass["кот_ко"] = "кот " ;
$mass["мот_ко"] = "mot " ;


Функция должна распечатать: 5,6
Так вот как ты реализуешь эту задачку Feldmarschall..?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)