ФорумПрограммированиеPHP для идиотов → ${$var} не всегда вар %)

${$var} не всегда вар %)

  • m15

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz 30 октября 2012 г. 4:56

    алоха, умы!

    столкнулся вот с таким придурством:


    $cookie = array( 'j', '0', 'p', 'A' );
    $v = 'cookie';
    echo ${$v}[1];
    // 0

    $v = '_COOKIE';
    echo ${$v}['PHPSESSID'];
    // Notice: Undefined variable: _COOKIE

    echo $_COOKIE['PHPSESSID'];
    // s691sh1oc0qmgpar9jsjbjfqq1



    как думаете, есть шанс абстрагировать куки и сешенсы и обойтись без нотисов "нет таких варсов"?

    ВНИМАНИЕ! это таки маструбация!
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 30 октября 2012 г. 5:27, спустя 31 минуту 2 секунды

    ебашь какнить так
    $var1 = '_COOKIE';
    $var2 = 'var1';
    $var3 = 'var2';
    $var4 = 'var3';
    $var = 'var4';
    ${${${${$var}}}}['PHPSESSID'];
    , удобно же

    абстрагировать куки
    чем так не нравится?
    $array = $_COOKIE;
    echo $array['PHPSESSID'];


    нет таких варсов
    Хуярсов блять
    Work, buy, consume, die
  • m15

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz 30 октября 2012 г. 5:37, спустя 9 минут 48 секунд

    ну, брат, это примитив - попробуй тогда это решить:


    $typesecur = 'ses';
    $curvar = array( 'cok' => '_COOKIE', 'ses' => '_SESSION', 'ser' => '_GET' );
    $vars_in_condom = ${$curvar[$typesecur]};

  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 30 октября 2012 г. 5:51, спустя 14 минут 53 секунды

    столкнулся вот с таким придурством:

    отлично подобрал последнее слово ко всему топику
    Спустя 44 сек.
    // Notice: Undefined variable: _COOKIE

    все верно сделал. нет такой прееменной
    Сапожник без сапог
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 30 октября 2012 г. 7:22, спустя 1 час 30 минут 48 секунд


    ну, брат, это примитив - попробуй тогда это решить:


    $typesecur = 'ses';
    $curvar = array( 'cok' => '_COOKIE', 'ses' => '_SESSION', 'ser' => '_GET' );
    $vars_in_condom = ${$curvar[$typesecur]};


    Блеать, объясни, чем тебе так нравятся йолочки эти ${${${$}}}
    $typesecur = 'ses';
    $curvar = array( 'cok' => $_COOKIE, 'ses' => $_SESSION, 'ser' => $_GET);
    $vars_in_condom = $curvar[$typesecur];
    Work, buy, consume, die
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 30 октября 2012 г. 13:24, спустя 6 часов 1 минуту 57 секунд


    как думаете, есть шанс абстрагировать куки и сешенсы и обойтись без нотисов "нет таких варсов"?


    А у тя где-нить выше unset($_COOKIE) точно нету? Потому что у меня в 5.3.1 этот говнокод заработал "без варсов".
  • m15

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz 30 октября 2012 г. 23:44, спустя 10 часов 19 минут 43 секунды

    AlexB, да нет ансетов - это было бы объяснимо :(

    Nyaah, за тем, что парадигма сессии указует на то, откуда брать переменные и писать кучу ифов не хотелось бы…
    вот и выходит: либо я что-то ищу, почему у меня переменная через конкат не находится, либо пишу башенку условий (что уже есть ес-но)

    но вообще это конечно маструбация в чистом виде - хочется поменьше мусора :)
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 31 октября 2012 г. 7:20, спустя 7 часов 36 минут 20 секунд

    1. пишем свой вектор
    class MyArray implements ArrayAccess, IteratorAggregate {
    public function __construct($array) {
    $this->_data = $array;
    }
    // ….
    public function offsetGet($index) {
    return isset($this->_data[$index]) ? $this->_data[$index] : '';
    }
    }

    2. делаем $session = new MyArray($_SESSION); или где у тебя там ключей нехватает

    N. Profit
    Work, buy, consume, die
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 31 октября 2012 г. 7:48, спустя 27 минут 35 секунд

    Да вы ебнулись тут все …
  • indeego

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 31 октября 2012 г. 9:15, спустя 1 час 27 минут 5 секунд

    Ж О П А
  • AlexanderC

    Сообщения: 270 Репутация: N Группа: Кто попало

    Spritz 31 октября 2012 г. 14:13, спустя 4 часа 58 минут 32 секунды

    блеа, от реальности обстрагировались… что такое в таком случае абстракция?…. хуев попов
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 октября 2012 г. 21:15, спустя 7 часов 1 минуту 44 секунды

    ебать ты лох
    Сапожник без сапог
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 15 ноября 2012 г. 23:22, спустя 15 дней 3 часа 6 минут

    Notice - намек, что возможно ты делаешь что-то не так и это потом выйдет боком.
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 16 ноября 2012 г. 7:50, спустя 8 часов 27 минут 58 секунд

    Вот поэтому в мире так много глючного софта и говнокода … ((((

Пожалуйста, авторизуйтесь, чтобы написать комментарий!