Wygląda na to, że $ pid jest poza zakresem. Czy nie powinno być "zamknięte" w funkcji? Jestem dość pewny, że na przykład zamykanie działa w javascript.Problem z zakresem zamykania PHP
Według niektórych artykułów php closures are broken, więc nie mogę uzyskać dostępu do tego?
W jaki sposób można uzyskać dostęp do $ pid z tej funkcji zamykania?
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);
Edit Dostałem wokół niego z użytkowania: $col->parser = function($row) use($pid)
. Jednak czuję, że to jest brzydkie.
Nie jest brzydki, to w jaki sposób zamknięcia pracować w php – zerkms
tak to jest w php, więc .. – tradyblix
To brzydki język, ale utknąłem z tym. :( – Keyo