Php 5.3 gibi bir değişken bir anonymous function saklayabilirsiniz. Bu anonim işlev bazı önceden tanımlanmış parametreleri ile "orijinal" işlevini çağırabilirsiniz.
function foo($x, $y, $z) {
echo "$x - $y - $z";
}
$bar = function($z) {
foo('A', 'B', $z);
};
$bar('C');
edit: Ayrıca anonim işlevinin oluşturulmasını parametrelendirmek bir kapatma kullanabilirsiniz
function foo($x, $y, $z) {
echo "$x - $y - $z";
}
function fnFoo($x, $y) {
return function($z) use($x,$y) {
foo($x, $y, $z);
};
}
$bar = fnFoo('A', 'B');
$bar('C');
edit2: Bu da nesneler ile çalışır
class Foo {
public function bar($x, $y, $z) {
echo "$x - $y - $z";
}
}
function fnFoobar($obj, $x, $z) {
return function ($y) use ($obj,$x,$z) {
$obj->bar($x, $y, $z);
};
}
$foo = new Foo;
$bar = fnFoobar($foo, 'A', 'C');
$bar('B');
Tam bir sınıf "geliştirmek" için istiyorsanız Ama __ () çağrısı ve bir sarıcı sınıfını kullanarak diğer önerileri daha iyi olabilir.