Очевидно, что $pid находится вне сферы действия здесь. Разве это не должно быть "закрыто" функцией? Я довольно уверен, что, например, закрытие работает в javascript.
В соответствии с некоторыми статьями закрываются php-блокировки, поэтому я не могу получить к нему доступ?
Итак, как можно получить доступ к $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)
. Однако я чувствую, что это уродливо.