2017-06-29 77 views
0

假設我們有這個功能PHP回調 - 數組或箭頭語法?

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

如何稱呼呢?

run($someObject->callback); 

或者說

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

第一個似乎更對我來說,特別是因爲代碼的建議,但在文檔中使用數組符號。

爲什麼第一個比第二個壞?

+2

第一個是否工作?它只會在「回調」是一個變量的值是一個函數時才起作用。 – apokryfos

+0

使用PHP [Callable](http://php.net/manual/en/language.types.callable.php)文檔中描述的任何方法。 – axiac

回答

1

數組符號更好,因爲箭頭符號不起作用。 PHP中的函數不是可以傳遞的頭等對象。每當你「傳遞一個函數」,你必須通過它的名字;即只有它的名字。要傳遞對象方法,您需要使用callable pseudo type notation來傳遞對象和方法名稱。

+0

謝謝你的解釋。 – LiTe