PHP コールバック メソッド
コールバックについては説明の必要はありません。PHP でコールバックを実装する方法を見てみましょう。
1. まず、テストの便宜のためにオブジェクト
class Product{
を作成します。
function __construct($name){
$this->name=$name;
}
}
2. コールバック
class ProcessSale{ を使用します。
private $ callbacks;
//コールバック メソッドを設定します
function registerCallBack($callback){
if(!is_callable($callback)){
throw new Exception("xxxxxx ");
}
$this->callbacks[]=$callback;
}
function sale($product){
print "{$product ->name} :processing n";
foreach($this->callbacks as $callback){
call_user_func($callback,$product);
}
}
}
3. テスト
$logger = function($product){
print "logging ({$product->name})";
}
$processor = new ProcessSale();
$processor->registerCallBack($logger);
$processor->sale(new Product("Test"));