我可以使用两个名称定义相同的函数吗?

时间:2017-04-17 08:13:01

标签: php

我想定义一个函数,但有两个不同的名称。我可以做到这一点:

function my1($a, $b) { ......  }
function my2($a, $b) { my1($a,$b); }

但我感兴趣的是,如果有更短的方式,例如:

function my1 & my2 ($a, $b) { ......  }

3 个答案:

答案 0 :(得分:5)

尝试匿名功能。它允许您调用相同的功能,但名称不同。像这样

<?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

答案 1 :(得分:0)

您可以创建递归函数,而不是创建两个相同的函数。例如:

{{1}}

答案 2 :(得分:-1)

是的!为此你需要使用匿名函数。 一个变量保存您的函数,另一个变量引用相同的变量。

<?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两次。