PHP ООП и вложенные функции
Здраствуйте, помогите со следующим кодом:
class nameClass { public $variable = 5; function metod_1 () { function metod_2 () { // ... } } } Как получить доступ к переменной variable из вложенной функции metod_2 при условии, что эта переменная не передаётся в параметрах при вызове функции? Такая ситуаци возникла при работе с шаблонами, когда вместо строки замены задаётся функция обратного вызова. Например функция metod_1 осуществляет поиск и замену по регулярному выражению. Вместо строки замены стоит функция обратного вызова (metod_2), которая и формирует строку замены, при этом она должна знать некоторые параметры класс. |
вообще-то в PHP еще нету нормальной реализации замыканий
http://ru.wikipedia.org/wiki/Зам�...�ни е)#PHP это для версий от 5.3.0 планируется текущая последняя 5.2.9 |
Спасибо!
P.S.: Два дня тупил сидел:wacko: |
и вложенные функции использовать не стоит: ты пробовал вызвать method_1 2 раза?
|
Fatal error: Cannot redeclare metod_2()
Ну вот, попробовал... Одно радует - хоть что-то новое узнал... |
Я этот же вопрос на форуме про php задал. Вот что пишут:
"Как ни печально, в PHP нет вложенных функций и здесь вы просто при вызове metod_1 определили глобальную metod_2" Провёл эксперимент. Оказывается, что metod_2 действительно доступен из любого места программы. |
да, наверное, можно считать, что функции создаются по мере выполнения сценария, как другие операторы (выполняются)... можно, например, функцию в if засунуть
|
Часовой пояс GMT +3, время: 21:32. |