[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: псевдоним функции
telealex
доброго времени суток уважаемые )

вот озадачился вопросом:
могу ли я сам себе определить псевдоним на свою функцию?

дано: у меня есть длинное и понятное имя функции и я задрался вечно писать ее имя.

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

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

помню такое можно проделывать например для С++

спасибо за внимание



Спустя 1 час, 2 минуты, 46 секунд (14.03.2012 - 08:06) glock18 написал(а):
Цитата (telealex @ 14.03.2012 - 04:03)
доброго времени суток уважаемые )

вот озадачился вопросом:
могу ли я сам себе определить псевдоним на свою функцию?

дано: у меня есть длинное и понятное имя функции и я задрался вечно писать ее имя.

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

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

помню такое можно проделывать например для С++

спасибо за внимание

да легко -


function funcWithLongName($param)
{
//
}

function alias($param)
{
return funcWithLongName($param);
}

// или не переписывая параметры
function alias()
{
return call_user_func_array("funcWithLongName", func_get_args());
}


Спустя 17 секунд (14.03.2012 - 08:06) kovaldm написал(а):
Ctrl+c, Ctrl+v

Спустя 12 минут, 57 секунд (14.03.2012 - 08:19) telealex написал(а):
Цитата (glock18 @ 14.03.2012 - 05:06)
Цитата (telealex @ 14.03.2012 - 04:03)
доброго времени суток уважаемые )

вот озадачился вопросом:
могу ли я сам себе определить псевдоним на свою функцию?

дано: у меня есть длинное и понятное имя функции и я задрался вечно писать ее имя.

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

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

помню такое можно проделывать например для С++

спасибо за внимание

да легко -


function funcWithLongName($param)
{
//
}

function alias($param)
{
return funcWithLongName($param);
}

// или не переписывая параметры
function alias()
{
return call_user_func_array("funcWithLongName", func_get_args());
}


первые два варианты конечно не интересны :)

а вот третий уже дельный, но все равно как-то не так эстетично как в С++

пасиб

если кто знает короче вариант, то откликнитесь плиз (только не надо извращений типа обфускатора с однобукувенными именами переменных внутри и удаленными переходами на новые строки и без пробел0ff)

Спустя 14 минут, 55 секунд (14.03.2012 - 08:34) glock18 написал(а):
Цитата (telealex @ 14.03.2012 - 05:19)
первые два варианты конечно не интересны smile.gif

а вот третий уже дельный, но все равно как-то не так эстетично как в С++

пасиб

если кто знает короче вариант, то откликнитесь плиз (только не надо извращений типа обфускатора с однобукувенными именами переменных внутри и удаленными переходами на новые строки и без пробел0ff)


любопытно, что вы первую функцию, для которой нужен алиас, восприняли как вариант ohmy.gif лично на мой взгляд, вариант с динамическим вызовом получше, но и первый вариант тоже неплох, в частности, если количество аргументов функции не предполагает расти.

Цитата

но все равно как-то не так эстетично как в С++

едва ли в php что-то так же эстетично, как в сях rolleyes.gif хотя своя красота есть, несомненно

Спустя 4 минуты, 48 секунд (14.03.2012 - 08:39) telealex написал(а):
Цитата (glock18 @ 14.03.2012 - 05:34)
любопытно, что вы первую функцию, для которой нужен алиас, восприняли как вариант ohmy.gif лично на мой взгляд, вариант с динамическим вызовом получше, но и первый вариант тоже неплох, в частности, если количество аргументов функции не предполагает расти.

мда ужжж. спать наверна пора идти. обгляделся я blink.gif

Спустя 6 минут, 12 секунд (14.03.2012 - 08:45) glock18 написал(а):
Цитата (telealex @ 14.03.2012 - 05:39)
Цитата (glock18 @ 14.03.2012 - 05:34)
любопытно, что вы первую функцию, для которой нужен алиас, восприняли как вариант ohmy.gif лично на мой взгляд, вариант с динамическим вызовом получше, но и первый вариант тоже неплох, в частности, если количество аргументов функции не предполагает расти.

мда ужжж. спать наверна пора идти. обгляделся я blink.gif

бывает smile.gif проспитесь, и затем возвращайтесь к алиасам

Спустя 3 часа, 9 минут, 46 секунд (14.03.2012 - 11:55) vital написал(а):
$alias='my_func_name';
$$alias($params);

Спустя 36 секунд (14.03.2012 - 11:55) vital написал(а):
Вот только бред это все. Лучше давайте функциям нормальные имена

Спустя 3 минуты, 54 секунды (14.03.2012 - 11:59) glock18 написал(а):
Цитата (vital @ 14.03.2012 - 08:55)
$alias='my_func_name';
$$alias($params);

ситуация то не бред, а вот от этого вариант решения точно потягивает чем-то таким smile.gif

Спустя 5 минут, 25 секунд (14.03.2012 - 12:05) vital написал(а):
Цитата (glock18 @ 14.03.2012 - 10:59)
Цитата (vital @ 14.03.2012 - 08:55)
$alias='my_func_name';
$$alias($params);

ситуация то не бред, а вот от этого вариант решения точно потягивает чем-то таким smile.gif

Почему?
Самый короткий способ решить поставленный вопрос.
Ну и самый медленный, да.

Спустя 17 минут, 5 секунд (14.03.2012 - 12:22) glock18 написал(а):
Цитата (vital @ 14.03.2012 - 09:05)
Цитата (glock18 @ 14.03.2012 - 10:59)
Цитата (vital @ 14.03.2012 - 08:55)
$alias='my_func_name';
$$alias($params);

ситуация то не бред, а вот от этого вариант решения точно потягивает чем-то таким smile.gif

Почему?
Самый короткий способ решить поставленный вопрос.
Ну и самый медленный, да.

самый короткий с точки зрения объема кода - да

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

Спустя 6 часов, 27 минут, 27 секунд (14.03.2012 - 18:49) telealex написал(а):
Цитата (glock18 @ 14.03.2012 - 05:06)



function alias($param)
{
  return funcWithLongName($param);
}

// или не переписывая параметры
function alias()
{
  return call_user_func_array("funcWithLongName", func_get_args());
}

спасибо за подсказку
буду использовать ваш второй вариант с func_get_args() он всетаки неплох :)

не могу + в профиль поставить т.к. нет 10 постов. постараюсь не забыть и потом как-нить. проставиться
Быстрый ответ:

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