[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Дополнение одной функции другой
Deos
Прошу помощи
Суть проблемы:
Решил написать удобную функцию для работы с темплейтами. В тпл переменные указаны в формате переменных, что бы была возможность ей/ему ловить глобальные переменные из тела *.php. Все переменные связанные с тпл инициализируются внутри функций. До этого, все эти переменные вначале функции записывались мною как глобальные, инициализировались, и функция парсинга-принта шаблона ловила их по выходу. Вот появилась идея разбить функцию парсинга-принта на две части, что бы по началу некой функции нужный тпл парсился и внутри функции обьявлялись необходимые глобальные переменные, а под конец, принтовался сам отпарсеный тпл
Так вот, как мне это сделать. Я обычно пробовал сделать так:

function makeGlobal($arr) {

foreach($arr as $param)
global $$param;

// а как второй вариант:
// eval("global \$".$param.";");
}

function makePublic() {

$arr = array("i","j","k");
makeGlobal($arr);
$i = 5;
}

makePublic();
echo $i;

Увы, переменная не выводится.

Видимо такой вариант не верный идеологически, так что так же хочу услышать и другие предложения решения задания



Спустя 11 минут, 54 секунды (19.07.2012 - 23:20) Игорь_Vasinsky написал(а):
dont make dublicates this topic. its no good dry.gif

Спустя 23 минуты, 6 секунд (19.07.2012 - 23:44) Deos написал(а):
не нашел похожего топика, будь так добр, ссылку

Спустя 2 минуты, 28 секунд (19.07.2012 - 23:46) Игорь_Vasinsky написал(а):
ахаха.. аа.. я же ответил, но форум лёг)) ответ не прошёл.

вообщем я предлагал в качестве арумента второй функции передать результат первой.

Спустя 7 минут, 4 секунды (19.07.2012 - 23:53) Deos написал(а):
пример наведи.. смутно понятно

Спустя 1 минута, 36 секунд (19.07.2012 - 23:55) Deos написал(а):
ту заметил ошибку, функция первая не имеет аргумента, а массив она сама генерирует

Спустя 1 минута, 14 секунд (19.07.2012 - 23:56) Игорь_Vasinsky написал(а):
так - ещё раз - какая взаимосвязь этих функций?

Спустя 4 минуты, 12 секунд (20.07.2012 - 00:00) Deos написал(а):
makeGlobal принимает в аргументе имя шаблона, парсит его, и должна создавать в функции makePublic необходимые глобальные переменные, что бы, например, его можно было вывести после вызова функции makePublic

Спустя 12 минут, 34 секунды (20.07.2012 - 00:13) Deos написал(а):
теоретически решил
В начале функции makePublic, из функции makeGlobal получаю массив с именами необходимых переменными для парсинга темплейта, а под конец функции, когда уже эти переменные обьявлены, создаю ассоциативный массив [имя переменной] => (ее значение), и его передаю следующей функции, для парсинга, которая в строке выводит отпарсеный шаблон, ну, или принтует его. стоит сделать класс вероятно для парсинга шаблонов

Спустя 2 минуты, 43 секунды (20.07.2012 - 00:15) Deos написал(а):
хотя как-то кривовато.. этот массив еше создавать левый в каждой функции
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.