2017-06-29 5 views
0

は、我々は、この関数を呼び出す方法PHPコールバック - 配列または矢印の構文ですか?

<?php 
function run($callback) 
{ 
    $callback($some, $params); 
} 

を持っていると仮定しましょうか?

run($someObject->callback); 

かという

run([$someObject, 'callback']); 

最初のものは配列表記を使用され、特に、コードの提案のためしかし、マニュアルに私には良さそうです。

なぜ第1のものが第2のものよりも悪いのですか?

+2

最初のコードは機能しますか? "コールバック"がその値が関数であった変数であった場合にのみ機能します。 – apokryfos

+0

PHP [Callable](http://php.net/manual/en/language.types.callable.php)のドキュメントに記載されている方法のいずれかを使用します。 – axiac

答えて

1

矢印の表記が機能しないため、配列の表記法が良好です。 PHPの関数は、渡すことができるファーストクラスのオブジェクトではありません。あなたが "関数を渡す"ときはいつも、それを名前で渡す必要があります。つまりその名前のみです。オブジェクトメソッドを渡すには、callable pseudo type notationを使用してオブジェクトとメソッド名を渡す必要があります。

+0

ありがとうございます。 – LiTe

関連する問題