[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как передать в функцию переменную
AquaGen
Есть функция, в ней есть функция, созданная с помощью create_function (вызывается в preg_replace_callback)
Надо чтобы в нее попала переменная с 1 и при каждом ее исполнении прибавлялась.
Глобальную переменную использовать не выйдет - функция в функции (а та тоже в функции), переменная может быть уже занята.
если в create_function пишу $i=1, то он при каждом вызове 1, а мне надо чтобы прибавлялось в ней, вообщем так:
				
function input($contentri) {
function contentinput($contentri) {
$contentr=preg_replace_callback($pattern,
create_function(
'$matches',
'здесь код, где нужно узнавать, сколько раз функция уже была вызвана'




Спустя 20 минут, 53 секунды (2.10.2011 - 11:43) caballero написал(а):
почему это глобальная не выйдет?
если preg_replace_callback в разных местах и хочешь считать отдельно то сделай глобальный массив


Спустя 54 минуты, 4 секунды (2.10.2011 - 12:37) AquaGen написал(а):
ой, ну я специально засунул кусок когда в функцию, чтобы можно было его везде использовать, а теперь собственно не получается функцию просто использовать.
можно как-нибудь я не знаю, "получить" переменную не глобальную, а из функции выше? (в смысле из функции, в которой эта функция)

Спустя 7 минут, 54 секунды (2.10.2011 - 12:45) Guest написал(а):
тогда почитай про замыкания (дельта функции ) в PHP

через create function никтто уже не делает

Спустя 3 часа, 54 минуты, 23 секунды (2.10.2011 - 16:39) Winston написал(а):
AquaGen
Почему не весь код показал ?
Цитата (AquaGen @ 2.10.2011 - 11:22)
мне надо чтобы прибавлялось в ней,

Напиши
static $i = 0;

И потом инкременти.
Guest
Цитата (Guest @ 2.10.2011 - 12:45)
тогда почитай про замыкания (дельта функции ) в PHP

А ты знаешь в какой версии PHP они появились ?
И то, что еще очень много серверов используют PHP < 5.3

Спустя 15 часов, 30 минут, 8 секунд (3.10.2011 - 08:09) linker написал(а):
Guest
Делаю, ибо не у каждого хостера имеется PHP 5.3 и выше.

Спустя 2 дня, 8 часов, 11 минут, 42 секунды (5.10.2011 - 16:21) AquaGen написал(а):
Цитата (Winston @ 2.10.2011 - 13:39)
AquaGen
static $i = 0;

И потом инкременти.

что? я перед функцией в которой стоит global $I прописал, все равно он не получает этот $i

Спустя 5 минут, 14 секунд (5.10.2011 - 16:26) m4a1fox написал(а):
ну так наверно надо прибавлять 1 каждый раз при вызове! Наверно. так $i++

Спустя 1 час, 42 минуты, 22 секунды (5.10.2011 - 18:09) Winston написал(а):
AquaGen
Попробуй
function input($contentri) {
function contentinput($contentri) {
$contentr=preg_replace_callback($pattern,
create_function(
'$matches',
'static $i = 0; return isset($matches) ? $i++ : $i;'
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.