вот озадачился вопросом:
могу ли я сам себе определить псевдоним на свою функцию?
дано: у меня есть длинное и понятное имя функции и я задрался вечно писать ее имя.
требуется:без замены текста старых вызовов функции в уже готовых скриптах,
определить псевдоним для этой старой функции где-то рядом с определением самой функции и вызывать уже это псевдо-имя в новых скриптах
не хочу заменять старые вызовы функций т.к. это может потом где-то вылезти боком
помню такое можно проделывать например для С++
спасибо за внимание
Спустя 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) | ||
да легко -
|
первые два варианты конечно не интересны :)
а вот третий уже дельный, но все равно как-то не так эстетично как в С++
пасиб
если кто знает короче вариант, то откликнитесь плиз (только не надо извращений типа обфускатора с однобукувенными именами переменных внутри и удаленными переходами на новые строки и без пробел0ff)
Спустя 14 минут, 55 секунд (14.03.2012 - 08:34) glock18 написал(а):
Цитата (telealex @ 14.03.2012 - 05:19) |
первые два варианты конечно не интересны а вот третий уже дельный, но все равно как-то не так эстетично как в С++ пасиб если кто знает короче вариант, то откликнитесь плиз (только не надо извращений типа обфускатора с однобукувенными именами переменных внутри и удаленными переходами на новые строки и без пробел0ff) |
любопытно, что вы первую функцию, для которой нужен алиас, восприняли как вариант лично на мой взгляд, вариант с динамическим вызовом получше, но и первый вариант тоже неплох, в частности, если количество аргументов функции не предполагает расти.
Цитата |
но все равно как-то не так эстетично как в С++ |
едва ли в php что-то так же эстетично, как в сях хотя своя красота есть, несомненно
Спустя 4 минуты, 48 секунд (14.03.2012 - 08:39) telealex написал(а):
Цитата (glock18 @ 14.03.2012 - 05:34) |
любопытно, что вы первую функцию, для которой нужен алиас, восприняли как вариант лично на мой взгляд, вариант с динамическим вызовом получше, но и первый вариант тоже неплох, в частности, если количество аргументов функции не предполагает расти. |
мда ужжж. спать наверна пора идти. обгляделся я
Спустя 6 минут, 12 секунд (14.03.2012 - 08:45) glock18 написал(а):
Цитата (telealex @ 14.03.2012 - 05:39) | ||
мда ужжж. спать наверна пора идти. обгляделся я |
бывает проспитесь, и затем возвращайтесь к алиасам
Спустя 3 часа, 9 минут, 46 секунд (14.03.2012 - 11:55) vital написал(а):
$alias='my_func_name';
$$alias($params);
$$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); |
ситуация то не бред, а вот от этого вариант решения точно потягивает чем-то таким
Спустя 5 минут, 25 секунд (14.03.2012 - 12:05) vital написал(а):
Цитата (glock18 @ 14.03.2012 - 10:59) | ||
ситуация то не бред, а вот от этого вариант решения точно потягивает чем-то таким |
Почему?
Самый короткий способ решить поставленный вопрос.
Ну и самый медленный, да.
Спустя 17 минут, 5 секунд (14.03.2012 - 12:22) glock18 написал(а):
Цитата (vital @ 14.03.2012 - 09:05) | ||||
Почему? Самый короткий способ решить поставленный вопрос. Ну и самый медленный, да. |
самый короткий с точки зрения объема кода - да
ужасный способ с точки зрения архитектуры приложения и смысла. Алиас заводят для того, чтобы в дальнейшем, возможно, отказаться от его оригинала - в вашей ситуации это будет невозможно. К тому же, обращение к функции по имени переменной нормально в пределах функции где эта переменная и определена, а не в глобальном пространстве имен.
Спустя 6 часов, 27 минут, 27 секунд (14.03.2012 - 18:49) telealex написал(а):
Цитата (glock18 @ 14.03.2012 - 05:06) |
|
спасибо за подсказку
буду использовать ваш второй вариант с func_get_args() он всетаки неплох :)
не могу + в профиль поставить т.к. нет 10 постов. постараюсь не забыть и потом как-нить. проставиться