PALADIN+ Опубликовано 20 Июля 2007 Жалоба Поделиться Опубликовано 20 Июля 2007 Файл Topics.php class Topics { наша функция() { } function Topics() { $var1 = "123"; } } Нужно в нашей функции использовать переменную $var1, но функция её не видит.Передать параметром, из-за особенностей функции и способа обращения к ней, нельзя. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 20 Июля 2007 Жалоба Поделиться Опубликовано 20 Июля 2007 Ну либо так: class Topics { наша функция() { echo $this->var1; } function Topics() { $this->var1 = "123"; $this->наша_функция(); } } либо как ты уже говорил параметром: class Topics { наша функция($par) { echo $par; } function Topics() { $var1 = "123"; $this->наша функция($var1); } } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 20 Июля 2007 Автор Жалоба Поделиться Опубликовано 20 Июля 2007 Спасибо большое. Первый вариант как раз подошёл. А второй в моём случае наверное нельзя. (ну и фиг с ним, раз работает первый)Если более точно, то вот что там class Topics { наша callback функция($matches) { return функция от $var1; } function Topics() { $var1 = "123"; preg_replace_callback(строка, наша callback функция, строка) } }В общем передать в нашу callback функцию, ничего вроде бы и нельзя, учитывая как она вызывается. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 21 Июля 2007 Жалоба Поделиться Опубликовано 21 Июля 2007 Почему же не льзя-то?как раз можно, на входе у нее то что найдено регекспомно ведь можно и чрез глобальную переменую запихать что надо и через класс как тебе Song показал Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 21 Июля 2007 Автор Жалоба Поделиться Опубликовано 21 Июля 2007 Ничего кроме того что ей передано самой функцией preg_replace_callback больше из этой же функции передать нельзя. (то есть параметром.) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.