я лично обнаружил java.lang.Void
очень поздний - улучшает удобочитаемость кода в сочетании с дженериками, например, Callable<Void>
Нет, но вы можете сделать это:
$wait = 'sleep';
$wait($seconds);
Таким образом вы также решите проблемы с числами аргументов
ага, функция ожидания ($ секунды) {сна ($ секунды); }
- это правильный путь. Но если вас беспокоит необходимость изменения wait (), если вы измените количество параметров для sleep (), вы можете вместо этого сделать следующее:
function wait() {
return call_user_func_array("sleep", func_get_args());
}
вы можете использовать расширение runkit
http://us.php.net/manual/en/function.runkit-function-copy.php
Нет, функции не первого класса граждане, поэтому нет wait = sleep
как, например, Javascript. В основном вам нужно сделать то, что вы задали в своем вопросе:
function wait ($seconds) { sleep($seconds); }
нет. способ, которым вы написали, - лучший способ сделать это.
Вы также можете посмотреть лямбды , если у вас PHP 5.3
$wait = function($v) { return sleep($v); };
Нет, быстрого способа сделать это нет - по крайней мере, для всего, что было до PHP v5.3, да и делать это тоже не очень хорошая идея. Это просто усложняет дело.
Нет, в PHP нет быстрого способа сделать это. Язык не предлагает возможности создавать псевдонимы для функций без написания функции-оболочки.
Если вам это действительно действительно нужно, вы можете написать расширение PHP , которое сделает это за вас. Однако для использования расширения вам необходимо скомпилировать свое расширение и настроить PHP для использования этого расширения, что означает, что переносимость вашего приложения будет значительно снижена.
Если вас не беспокоит использование инструкции "eval" PHP (с которой у многих людей есть реальные проблемы, но у меня нет), то вы можете использовать что-то вроде этого:
function func_alias($target, $original) {
eval("function $target() { \$args = func_get_args(); return call_user_func_array('$original', \$args); }");
}
Я использовал это в некоторых простых тестах, и это, кажется, работает довольно хорошо. Вот пример:
function hello($recipient) {
echo "Hello, $recipient\n";
}
function helloMars() {
hello('Mars');
}
func_alias('greeting', 'hello');
func_alias('greetingMars', 'helloMars');
greeting('World');
greetingMars();