Aparentemente $ pid está fuera del alcance aquí. ¿No debería estar "cerrado" con la función? Estoy bastante seguro de que así es como funcionan los cierres en JavaScript, por ejemplo.Problema de alcance de cierre de PHP
Según algunos artículos php closures are broken, entonces no puedo acceder a este?
Entonces, ¿cómo se puede acceder a $ pid desde esta función de cierre?
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);
Editar he conseguido alrededor de ella con su uso: $col->parser = function($row) use($pid)
. Sin embargo, siento que esto es feo.
No es fea, es cómo funcionan los cierres en php – zerkms
así es como está en php así que ... – tradyblix
Es un lenguaje feo, pero estoy atascado con eso. :( – Keyo