Форум → Программирование → PHP для идиотов → Как узнать имя переменной, переданной в качестве аргумента ф-ии
Как узнать имя переменной, переданной в качестве аргумента ф-ии
Страницы: ← Предыдущая страница →
-
11 января 2012 г. 14:26, спустя 1 минуту 53 секунды
adw0rd, как поживает мини-фреймворк?You can be anything you want to be. Just turn yourself into anything you think that you could ever be. -
11 января 2012 г. 15:08, спустя 42 минуты 7 секунд
waff,
суть в следующем:
контроллер упаковывает переменные функцией compact, а шаблонизатор распаковывает полученный массив функцией extract в локальном пространстве имён
пример:
//функция, имитирующая функцию контроллера
function foo(){
$name = 'Vasya';
$age = 27;
return compact('name', 'age');
}
//функция, имитирующая шаблонизатор
function fetch($params){
extract($params); // распаковываем в локальное пространство имён
ob_start();
include('template.php');
return ob_get_clean();
}
print fetch(foo());
template.php
<div>
Меня зовут <?= $name ?>, мне <?= $age ?> лет
</div>
плюсы:
compact не ругается на несуществующие переменные. правда, их отсутствие обнаружится в шаблоне, будут нотайсы, но их можно отключить через error_reporting
имена переменных в контроллере совпадают с именами переменных в шаблоне, всё наглядно
как именно будут передаваться данные в шаблонизатор - автоматически или вручную - не принципиально. просто автоматически удобнее, можно например условиться что функции foo соответствует шаблон foo.php, функции foo1 - foo1.php и т.д.. передачу параметров можно привязать к любому шаблонизатору.не всё полезно, что в swap полезло -
12 января 2012 г. 0:49, спустя 9 часов 40 минут 55 секунд
master,
теперь ясно. вполне неплохо. проверю на производительность и может у себя так сделаю. -
12 января 2012 г. 10:24, спустя 9 часов 34 минуты 22 секунды
Человек, который конкатенирует/эксплодит аргументы при передаче в функцию, только для того, чтобы узнать как называется переменная, будет тестировать производительность…
Этот мир обречён =)Work, buy, consume, die -
12 января 2012 г. 12:40, спустя 2 часа 15 минут 54 секунды
Nyaah,
не принимайте близко к сердцу. ну да, кое что умею, а вообще учусь, и этому рад =) у вас есть крутое решение данного вопроса? не стесняйтесь, пишите, как я например. -
12 января 2012 г. 16:35, спустя 3 часа 55 минут 21 секунду
Сможешь объяснить, зачем тебе это, напишу как сделать. Если это только объединение области видимости контроллера и шаблорна, то мастер тебе уже написал, причем два или три раза ужеWork, buy, consume, die
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!