TDionis
Новичок
Области видимости переменных
Здравствуйте, хочеть работать с переменнами определенными в области видимости в одной функции через другую фунцию. Т.е.
function www()
{
//здесь хочу изменять переменные $q $w $e .. $m
}
function qqq()
{
$q=0;
$w=3;
$e=7;
...
$m=678;
www();
//здесь хочу воспользоваться результатом изменений
}
Примечания:
- не хочу глобализировать т.к. на глобальном уровне могу кого-то перезатереть (вообще глобальные переменные это зло)
- не хочу передавать все переменные как ссылки в www ибо переменных много, очень много
- это нельзя соединить в одну функцию т.к. вызываемая внутри функция почти всегда разная.
Дополнительный вопрос:
можно ли как то прервать цикл из вызываемой фукции, т.е. чтобы www прервала цикл, или перешла к следующей итерации.
function qqq()
{
while(1) {www();}
}
Примечание:
- не хочу писать ифы на возвращенный результат функции www ибо это накладно - функции, кажется, для того и существуют чтобы не повторять один и тот же код много раз
Единственное что пришло в голову eval(www()) - но сами понимаете это тот еще способ.
Зарание спасибо.
Здравствуйте, хочеть работать с переменнами определенными в области видимости в одной функции через другую фунцию. Т.е.
function www()
{
//здесь хочу изменять переменные $q $w $e .. $m
}
function qqq()
{
$q=0;
$w=3;
$e=7;
...
$m=678;
www();
//здесь хочу воспользоваться результатом изменений
}
Примечания:
- не хочу глобализировать т.к. на глобальном уровне могу кого-то перезатереть (вообще глобальные переменные это зло)
- не хочу передавать все переменные как ссылки в www ибо переменных много, очень много
- это нельзя соединить в одну функцию т.к. вызываемая внутри функция почти всегда разная.
Дополнительный вопрос:
можно ли как то прервать цикл из вызываемой фукции, т.е. чтобы www прервала цикл, или перешла к следующей итерации.
function qqq()
{
while(1) {www();}
}
Примечание:
- не хочу писать ифы на возвращенный результат функции www ибо это накладно - функции, кажется, для того и существуют чтобы не повторять один и тот же код много раз
Единственное что пришло в голову eval(www()) - но сами понимаете это тот еще способ.
Зарание спасибо.