2012-04-21 18 views
1

ob_startを次のように使用するのに違いがありますか?ob_start();コールバック関数

オプション1:

function ob_handle($buffer){/*do something, and return buffer*/} 
ob_start('ob_handle'); 

オプション2:

ob_start(function($buffer){/*do something, and return buffer*/}); 

ありがとう!

+2

オプション2はPHP 5.3より前には動作しません。 – DCoder

答えて

4

パフォーマンス面での違いはほとんどありません。コールバック関数がどのように宣言されているかは問題ではなく、関数の使用方法や実行方法については何も変わりません。あなたが確かに知りたいなら、ベンチマークそれはです。

唯一の違いは、最初のケースでは、グローバル関数ob_handleを宣言しています。これは、別の場所から再度使用でき、グローバル名ob_handleを取ります。 2番目のケースでは、もう一度別の場所から無名関数を参照することはできません。

+0

ありがとう、私は多くを考え出した。 – Kovo