Intereting Posts
Как отредактировать мой код, чтобы он печатал все блоки строки JSON, а не только первый? PHP Функция сортировки по дате (сценарий автоматического воспроизведения в JWPLAYER) почему это не тянет данные с 7 дней назад? Отправка полученных заказов woocommerce дилерам, отправляющим уведомления по электронной почте MySQL: как сохранить / получить информацию о художнике? Как объяснить это ключевое слово наилучшим и простым способом? Настройка переменных сеанса PHP с помощью Flash ActionScript Как передать параметры из bash в php-скрипт? Платежный шлюз MediaWiki Заполнение поля со значениями из другого поля PHPUnit: проверка того, что массив имеет ключ с заданным значением Правило htaccess для анализа php в html-файлах, не работающих Как получить идентификатор заказа в woocommerce_email_headers Ошибка точки входа при запуске PHP-скрипта из командной строки Codeigniter – Допустимый размер памяти при загрузке

Создание новых переменных из ключей массива в PHP

Предположим, у меня есть массив, например:

$foo = array('first' => '1st', 'second' => '2nd', 'third' => '3rd'); 

Как я могу выбрать ключи из массива и сделать их собственными переменными? Например, массив $foo стал бы следующим:

 $first = '1st'; $second = '2nd'; $third = '3rd'; 

Я спрашиваю об этом, потому что я создаю структуру MVC, чтобы помочь с моим ООП, и я хотел бы, чтобы пользователь передал переменную функции просмотра загрузки, которая позволит пользователю использовать переменные в шаблоне, не зная, что такое массив назывался.

Например:

 $array = array('title' => 'My blog!' [...]); $this->load->view('view.php', $array); 

view.php:

 echo $title; 

Вывод:

Мой блог!

Вы можете сделать это:

 foreach($foo as $k => $v) { $$k = $v; } 

Простым методом является использование переменных переменных:

 foreach($foo as $key => $value) { $$key = $value; } echo $first; // '1st' 

Обратите внимание, что это, как правило, обескураживает. Было бы лучше изменить вашу систему шаблонов, чтобы переменные могли быть охвачены внутри шаблона. В противном случае у вас могут возникнуть проблемы с коллизиями, и вы должны проверить их существование и т. Д.