проблема с вызовом ф-ции, содержащеий вложенные ф-ции

Фанат

oncle terrible
Команда форума
форумы для этого и существуют, а не для выставляния других ламерами...
совершенно верно.
ламеры выставляются на форуме самостоятельно.
добровольно, так сказать :)
Не круто? - отмазка для лохов
Трудности при отладке? - серьезное замечание, но на самом деле не критично
Потеря производительности?
Ты забыл классическое
- У всякого свои недостатки!
 

catoffsky

Guest
Originally posted by delta9
тебе может и смешно - а мне пофиг - работает и это главное.
И в чем вообще проблема с использованием вложенных ф-ций:
  • Не круто? - отмазка для лохов
  • Трудности при отладке? - серьезное замечание, но на самом деле не критично
  • Потеря производительности?
Вы-таки не стесняйтесь - объясните! Я думаю форумы для этого и существуют, а не для выставляния других ламерами...
что за бред. если по твоему делу - то в ларёк на самосвале ездить как водится не принято (по извесным причинам)
а на форумах принято не требовать а вежливо просить (мол объяните что не так и как надо) - это называется нормативы человеческого общения
 

delta9

Guest
Автор оригинала: catoffsky
а на форумах принято не требовать а вежливо просить (мол объяните что не так и как надо) - это называется нормативы человеческого общения
так ведь я и не требую ничего - спросил как решить проблему. tony2001 и Sir_J мне ответили(спасибо им большое). Их решение мне не подошло, я нашел другой способ. Внятных объяснений почему так делать не надо никто не дал - только обвинили в "извращениях и неграмотности" (обидно, да?)
 

SiMM

Новичок
delta9, а какой в этом смысл?
PHP:
function parent1(){
   if (! function_exists('child') ) {
      function child(){
        return "parent1 child";
      }
   }
   return child();
}
function parent2(){
   if (! function_exists('child') ) {
      function child(){
        return "parent2 child";
      }
   }
   return child();
}
echo parent1()."<br>\n".parent2()."<br>\n";
А теперь тот же скрипт, только
PHP:
...
echo parent2()."<br>\n".parent1()."<br>\n";
Нет, конечно если тебе нравится недетерминированное поведение твоих скриптов - дело твоё...
 

Frol

Новичок
delta9
какая разница где ты объявишь функцию, отдельно или в теле другой функции?
в любом случае ты НИЧЕГО не изолируешь.
и функция будет доступна ВЕЗДЕ в скрипте.

решил "проблему". хе-хе.
 

delta9

Guest
2 SiMM - спасибо
то-есть способа изолировать ф-цию нет? - печально...
а возможно-ли определить какой участок кода сейчас выполняется?
 

Фанат

oncle terrible
Команда форума
Заметьте!
Вопрос опять сформулирован не
"- А как мне правильно писать программу? Куда мне голову на место поставить?"

Вы зря тратите время.
Я хорошо разбираюсь в таких людях.
 

vitus

мимо проходил
Прошло два месяца, а ответ на вопрос об изоляции функции в нутрях функции остался не решённым ...
А ведь нужная штука, иногда даже очень ...
И ведь есть такая возможность - вполне штатная.

смотреть в сторону :

string create_function ( string args, string code)

я например это использую для изоляции включаемых файлов
(я их называю темплетами :)
от всего на свете, вполть до суперглобалов
(при необходимости).

маленький пример
PHP:
<?
//это мы внутри метода класса (модуля) 
//поскольку наш метод будет множественно вызываться
//притом рекурсивно, мы кешируем изолятор
        global $objTplInc;//кешанём изолятор ;)
        if(!isset($objTplInc)){
            $objTplInc=create_function('$obj,$template',
            '
                if(is_file($template)){
                    include($template);
                }
                else eval("?>".$template."<?");    
            ');
        }

//тут мы вырубаем суперглобалы, которые нельзя 
//использовать в подключках (это вообще-то палка о двух концах)
//делаем всё что надо с параметрами
//вызываем изолированное действие 
        $objTplInc($obj, $template);
//а тут мы возвращаем суперглобалы обратно
?>
 

che

Guest
Originally posted by Frol
delta9
какая разница где ты объявишь функцию, отдельно или в теле другой функции?
в любом случае ты НИЧЕГО не изолируешь.
и функция будет доступна ВЕЗДЕ в скрипте.
Ага, ПОСЛЕ того, как будет вызвана родительская функция. В умелых руках этим можно воспользоваться. Но умелые руки могут добится того же эффекта парой десятков других способов.
 

che

Guest
Если ты это мне, то очень зря :D Это был ответ на тему какая разница где объявлять. А бредить тем, чем бредит молодой человек, создавший топик у меня желания нету. :D
 
Сверху