За последние 24 часа нас посетили 21903 программиста и 988 роботов. Сейчас ищет 661 программист ...

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

Тема в разделе "PHP для новичков", создана пользователем Вероломство, 15 фев 2021.

  1. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    615
    Симпатии:
    24
    PHP:
    1. echo str_replace('{content}', $this->cutScript($this->getOnly($file_view)), $this->getOnly($file_layout));
    2.  
    3. private function cutScript($buffer)
    4. {
    5.     $pattern = '~<script.*?</script>~si';
    6.  
    7.     preg_match_all($pattern, $buffer, $this->scripts);
    8.  
    9.     if ($this->scripts) {
    10.         $buffer = preg_replace($pattern, '', $buffer);
    11.     }
    12.  
    13.     return $buffer;
    14. }
    15.  
    16. private function getOnly($file)
    17. {
    18.     extract($this->vars); // как распаковать один раз?
    19.  
    20.     ob_start();
    21.  
    22.     require $file;
    23.  
    24.     return ob_get_clean();
    25. }
    дело в том, что некоторые переменные нужны И в шаблоне

    оно не смертельно, но может есть способ extract два раза не дёргать?
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    можно. С помощью кеширования инициализированных переменных.

    Но смысл ? Действия же будут от extract или от cash с присвоением значений переменным
     
    Вероломство нравится это.
  3. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    615
    Симпатии:
    24
    думал может есть простая какая фишка: типа вынести extract перед echo :)

    ok, оставил как есть, спс