我想定义一个函数,但有两个不同的名称。我能做到这样:我可以使用两个名称来定义相同的功能吗?
function my1($a, $b) { ...... }
function my2($a, $b) { my1($a,$b); }
,但我很感兴趣,如果有一个较短的方式,如:
function my1 & my2 ($a, $b) { ...... }
我想定义一个函数,但有两个不同的名称。我能做到这样:我可以使用两个名称来定义相同的功能吗?
function my1($a, $b) { ...... }
function my2($a, $b) { my1($a,$b); }
,但我很感兴趣,如果有一个较短的方式,如:
function my1 & my2 ($a, $b) { ...... }
尝试匿名函数。它允许你调用相同的功能,但名称不同。像这样
<?php
$function_1 = $function_2 = function($a,$b){ //The anonymous function is assigned names $function_1 & $function_2.
echo $a.' - '.$b;
};
$function_1('a','b');
$function_2('1','2');
?>
阅读完整的参考here
你可以做一个递归函数,而不是创建两个相同的功能。例如:
function my1($a, $b, $is_recursive = false) {
...
if ($is_recursive) {
my1($a, $b, false);
}
}
是的!因为你需要使用匿名函数。 一个变量保存你的函数,另一个变量引用相同的变量。
<?php
// Define function
$say_hello_1 = function()
{
echo "Hello";
};
// Refer to same function with different name
$say_hello_2 = $say_hello_1;
// Call to both of them
$say_hello_2();
$say_hello_1();
这两个调用表示相同的函数并打印两次Hello。
我只是好奇为什么这样?为什么你需要定义一个函数两次? –
你能告诉我们你需要这样做吗? –
听起来像[XY问题](http://xyproblem.info)。 –