2017-04-17 9 views
0

1つの関数を定義したいが、2つの異なる名前を付けたい。同じ関数を2つの名前で定義できますか?

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

より短い方法がある場合、私は次のように、興味を持っています:私はそのようなことを達成することができますが、代わりに2と同じ機能を作成する再帰関数を作ることができます

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

私はちょうどなぜ興味があるのですか?なぜ1つの関数を2回定義する必要があるのですか? –

+0

このようにする必要があることを教えていただけますか? –

+5

[XY問題](http://xyproblem.info)のように聞こえます。 –

答えて

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

0

。例:

function my1($a, $b, $is_recursive = false) { 
    ... 

    if ($is_recursive) { 
     my1($a, $b, false); 
    } 
} 
-1

はいを​​読みます!そのためには、匿名関数を使用する必要があります。 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を2回印刷します。

+0

すでに存在する答えとの違いは何ですか? – jmattheis

+0

回答は私が書いていたときに同時に掲示されました! – Nilay

+1

kk、あなたのコードに\ enter code here \があります – jmattheis

関連する問題