За последние 24 часа нас посетили 21914 программистов и 987 роботов. Сейчас ищут 644 программиста ...

Как значение переменной сделать названием новой переменной?

Тема в разделе "PHP для новичков", создана пользователем programer, 10 авг 2009.

  1. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    PHP:
    1. <?php
    2. $perem = "znachenie";
    3. ?>
    Как сделать, чтобы значение переменной $perem ("znachenie") стало именем новой переменной: "$znachenie"?
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. $$perem
     
  3. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    а может и делать не придётся если прочитать про массивы
     
  4. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    В общем задача в следуюющем:

    ssylki.txt содержит:
    Код (Text):
    1. <a href="http://site.ru/пылесосы/">pylesosy</a>
    2. <a href="http://site.ru/одуванчики/">oduvanchiki</a>
    script.php должен взять содержание файла ssylki.txt и сделать из него:
    PHP:
    1. <?php
    2. $pylesosy = '<a href="http://site.ru/пылесосы/">pylesosy</a>';
    3. $oduvanchiki = '<a href="http://site.ru/пылесосы/">oduvanchiki</a>';
    4. ?>
    file.html выводит:
    HTML:
    1. <?php include ($_SERVER['DOCUMENT_ROOT']."/script.php"); ?>
    2. ....
    3. ....
    4. <?php echo $pylesosy; ?>
    5. ....
    6. <?php echo $oduvanchiki; ?>
    7. ....
    8. </body>
    9. ...
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Где задача то?
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Прикольно. Для рабочего варианта не хватает 1 строки
     
  7. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    Задача в том, чтобы написать sсript.php, который будет брать содержание файла ssylki.txt и делать соответствующее преобразование.
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Гуглите в мануале про массилы и функцию file
    php.ru/manual
     
  9. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    Про функцию file я знаю, я не знаю как при помощи скрипта слово "pylesosy" сделать именем переменной "$pylesosy"!
     
  10. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    Переменная переменная здесь не подойдёт ((
     
  11. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Ну вообще, приведенный выше код и так почти будет работать.

    А по поводу вопроса:
    $varname = 'pylesosy';
    echo $$varname;

    Выведет содержимое пылесосов.
     
  12. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    вопрос в эту же степь:
    как узнать имя переменной из тела ф-ции?

    типа

    function f($a)
    {

    }

    f($gg) // должно вывести gg
    f($ac) // должно вывести ac

    Можно в принципе через backtrace извернуться, но может есть другие способы?
     
  13. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    По моему нет. Иначе можно было бы прикольно замутить передачу параметров в стиле пайтона.
     
  14. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Наглядно:
    PHP:
    1. <?php
    2. $link = '<a href="http://site.ru/пылесосы/">pylesosy</a>';
    3. $arr = explode('>', $link);
    4. $end = strpos($arr[1], '<');
    5. $name = substr($arr[1], 0, $end);
    6. $$name = $link;
    7. echo $pylesosy;
     
  15. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    А как насчет такого вызова:

    PHP:
    1. <?
    2.  
    3. func(123);
    4. func("Hello");
    5. func(new Object());
    6.  
    7. ?>
    Не получится ведь, как не крути =)
     
  16. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Apple
    ну это ясен пень не получится. Как и например у анонимной callback-функции нет имени.
     
  17. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    нах оно нужно
     
  18. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    для насаживания одноименных переменных на шаблон

    $tpl->assign('myLabel', $myLabel);
    можно было б трансформировать в
    $tpl->assign($myLabel);
     
  19. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    array_search($myLabel,$GLOBALS);
     
  20. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    [vs]!!, Sergey89
    СПАСИБО. Теперь понял как работает переменная переменная.