Суть проблемы:
Решил написать удобную функцию для работы с темплейтами. В тпл переменные указаны в формате переменных, что бы была возможность ей/ему ловить глобальные переменные из тела *.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

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