Очевидно, что $ pid находится вне области действия здесь.Разве это не должно быть "закрыто" с функцией?Я вполне уверен, что именно так работают закрытия в javascript, например.
Согласно некоторым статьям php замыкания не работают , поэтому я не могу получить доступ к this ?
Так как же можно получить доступ к $ pid из этой функции закрытия?
class MyClass {
static function getHdvdsCol($pid) {
$col = new PointColumn();
$col->key = $pid;
$col->parser = function($row) {
print $pid; // Undefined variable: pid
};
return $col;
}
}
$func = MyClass::getHdvdsCol(45);
call_user_func($func, $row);
Редактировать Я справился с этим с помощью: $col->parser = function($row) use($pid)
.Однако я чувствую, что это ужасно.